我正在尝试使用segue发送一些信息,但是我收到以下错误 无法将类型为json的值分配给NSArray类型的值
当我尝试做的时候:
self.pageImages = apiResult["images"]
我将apiResult设置为:
var apiResult: JSON! = []
然后我和swiftyjson一起使用alamofire以获取结果并将其转换为json,但现在我需要它作为NSArray。
我的数据返回为:
{
"somedata": {
some info
},
"someData": {
some info..
},
"images": [
"URL1", "URL2", "URL3"
]
}
答案 0 :(得分:2)
如果apiResult
是SwiftyJSON返回的JSON对象,并且apiResult["images"]
是要分配给pageImages
数组变量的URL数组,则必须使用{{ 1)} JSON类型的SwiftyJSON对象的属性:
array
答案 1 :(得分:-1)
您的数组定义设置为接受JSON
类型的值 - 您想要的是接受[JSON]
类型的值 - 即JSON值数组。
var apiResult: [JSON!] = []
此外,我不确定为什么你需要隐式解包的选项,除非你有充分的理由呢?
此外,Swift还有类型推断。因此,如果返回的值是JSON对象的数组,那么编译器就知道这一点,并且您不必明确告诉它值类型。