我收到以下错误AnyObject'无法转换为'String'。我在第if (answerArray != NSNull() && answerArray != nil)
行
我尝试将其转换为String,但它没有解决问题。我在下面发布了整个代码。
let answerArray : AnyObject = jsonparser.objectWithString(answer)
if (answerArray != NSNull() && answerArray != nil) {
}
答案 0 :(得分:1)
我的理解是jsonparser.objectWithString(answer)
应该返回一个数组,基于它所分配的变量的名称。
如果是异构类型的数组,您可以尝试转换为NSArray
:
if let answerArray = jsonparser.objectWithString(answer) as? NSArray {
...
}
如果数组应该包含相同类型的对象(让我们说Int
),那么你可以尝试转换为快速数组:
if let answerArray = jsonparser.objectWithString(answer) as? [Int] {
...
}
请注意,非可选变量可以从不为nil
- 并且您已将answerArray
声明为非可选项。
如果您想查看NSNull
,建议您阅读this question及相关答案。
答案 1 :(得分:0)
我的猜测是错误是answerArray != nil
- Swift是愚蠢的,因为它返回的错误是“不能转换为String”。更有用的是answerArray
不是可选的。
这就是你的问题 - 你有let answerArray : AnyObject...
- 而AnyObject
不是Optional
。在Swift中,'answerArray'绝不是'nil',因为只有Optional
类型可以是nil
。
在不查看jsonparser.objectWithString
的作用的情况下,我很难纠正您的代码,但实质上,编译器告诉您正在检查nil的非可选类型 - 这是不正确的。