无法将 JSON 类型的值分配给 NSArray 类型的值



我正在尝试发送一些带有 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"
    ]
}

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

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

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

var apiResult: [JSON!] = []

此外,我不确定为什么您需要隐式解包的可选内容,除非您有充分的理由?

此外,Swift 具有类型推断功能。因此,如果返回的值是 JSON 对象数组,则编译器知道这一点,您不必显式告诉它值类型。

相关内容

最新更新