任何对象都不能转换为'String'



我收到以下错误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 - 这是不正确的。

最新更新