2015-06-20 42 views
1

我试图发送一个赛格瑞一些信息,但我得到以下错误 不能类型JSON的值赋给类型的值的NSArray不能类型JSON的值赋给类型的值的NSArray

当我尝试这样做:

self.pageImages = apiResult["images"] 

我有apiResult设置为:

var apiResult: JSON! = [] 

然后我使用alamofire toget她与swiftyjson为了获取结果并将其转换为json,但现在我需要它作为NSArray。返回

我的数据:

{ 
    "somedata": { 
     some info 
    }, 
    "someData": { 
     some info.. 
    }, 
    "images": [ 
     "URL1", "URL2", "URL3" 
    ] 
} 

回答

3

如果apiResult是SwiftyJSON返回的JSON对象,如果apiResult["images"]是要分配给您的pageImages数组变量URL的数组,那么你必须使用JSON的array物业类型SwiftyJSON对象:

self.pageImages = apiResult["images"].array 
+1

我试过之前,但它没有奏效。但是现在我发现了另一个名为“.arrayObject”的工作:) –

+0

是的,SwiftyJSON库有许多可选的非可选“getters”,要使用哪一个取决于JSON内容的性质:'.array', .arrayValue','.arrayObject'等等,对于字典,字符串等等是一样的。 – Moritz

-1

你的数组定义是建立接受JSON型的价值 - 你想要的是接受[JSON]类型的值 - 即,JSON值的数组。

var apiResult: [JSON!] = []

另外,我不知道为什么你需要解开隐选配,除非你有一个很好的理由呢?

另外,Swift有类型推断。因此,如果返回的值是JSON对象的数组,那么编译器知道这一点,并且不必明确告诉它值类型。

相关问题