我试图用segue发送一些信息,但是我得到了以下错误,无法将json类型的值分配给NSArray类型的值。
当我试着做:
self.pageImages = apiResult["images"]
我将apiResult设置为:
var apiResult: JSON! = []
然后,我将使用alamofire和swiftyjson来获取结果并将其转换为json,但是现在我需要它作为一个NSArray。
我的数据返回如下:
{
"somedata": {
some info
},
"someData": {
some info..
},
"images": [
"URL1", "URL2", "URL3"
]
}
发布于 2015-06-20 02:29:38
如果apiResult
是SwiftyJSON返回的JSON对象,如果apiResult["images"]
是要分配给pageImages
数组变量的URL数组,则必须使用JSON类型的SwiftyJSON对象的array
属性:
self.pageImages = apiResult["images"].array
发布于 2015-06-19 17:44:27
您的数组定义设置为接受JSON
类型的值--您想要的是接受[JSON]
类型的值--即一个JSON值数组。
var apiResult: [JSON!] = []
此外,我不知道为什么你会需要隐式展开选项,除非你有一个好的理由?
而且,Swift也有类型推断。因此,如果要返回的值是JSON对象的数组,那么编译器知道这一点,您不必显式地告诉它值类型。
https://stackoverflow.com/questions/30949255
复制