我收到以下错误AnyObject'不可转换为"字符串"。我在行if (answerArray != NSNull() && answerArray != nil)
上收到此错误
我尝试将其转换为字符串,但它没有解决问题。我在下面发布了整个代码。
let answerArray : AnyObject = jsonparser.objectWithString(answer)
if (answerArray != NSNull() && answerArray != nil) {
}
我的理解是,jsonparser.objectWithString(answer)
应该根据它所赋值的变量的名称返回一个数组。
如果是异构类型的数组,则可以尝试强制转换以NSArray
:
if let answerArray = jsonparser.objectWithString(answer) as? NSArray {
...
}
如果数组应该包含相同类型的对象(假设Int
),那么您可以尝试将强制转换为 swift 数组:
if let answerArray = jsonparser.objectWithString(answer) as? [Int] {
...
}
请注意,非可选变量永远不能nil
- 并且您已将answerArray
声明为非可选变量。
如果您想检查NSNull
,我建议您阅读此问题和相关答案。
我的猜测是错误出在answerArray != nil
- Swift 很愚蠢,因为它在这里返回的错误是"不可转换为字符串"。更有用的是answerArray
不是可选的。
那是你的问题——你有let answerArray : AnyObject...
——AnyObject
不是Optional
.在 Swift 中,'answerArray' 从来都不是 'nil',因为只有Optional
类型可以nil
。
如果不看jsonparser.objectWithString
做什么,我很难纠正你的代码,但本质上,编译器告诉你你正在检查一个非可选类型的 nil - 这是不正确的。