不能将json类型的值赋给NSArray类型的值

时间:2015-06-20 01:00:15

标签: ios json swift

我正在尝试使用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"
    ]
}

2 个答案:

答案 0 :(得分:2)

如果apiResult是SwiftyJSON返回的JSON对象,并且apiResult["images"]是要分配给pageImages数组变量的URL数组,则必须使用{{ 1)} JSON类型的SwiftyJSON对象的属性:

array

答案 1 :(得分:-1)

您的数组定义设置为接受JSON类型的值 - 您想要的是接受[JSON]类型的值 - 即JSON值数组。

var apiResult: [JSON!] = []

此外,我不确定为什么你需要隐式解包的选项,除非你有充分的理由呢?

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