AnyObject 不可转换为 'String'

AnyObject is not convertible to 'String'

我收到以下错误 AnyObject' 无法转换为 'String'。我在 if (answerArray != NSNull() && answerArray != nil)

行收到此错误

我尝试将其转换为字符串,但未能解决问题。我在下面发布了整个代码。

 let answerArray : AnyObject = jsonparser.objectWithString(answer)
 if (answerArray != NSNull()  && answerArray != nil) {

}

我的理解是 jsonparser.objectWithString(answer) 应该是 return 一个数组,基于分配给它的变量的名称。

如果它是异构类型的数组,您可以尝试转换为 NSArray:

if let answerArray = jsonparser.objectWithString(answer) as? NSArray {
    ...
}

如果数组应该包含相同类型的对象(比方说 Int),那么您可以尝试转换为 swift 数组:

if let answerArray = jsonparser.objectWithString(answer) as? [Int] {
    ...
}

请注意,非可选变量 永远不会 nil - 并且您已将 answerArray 声明为非可选变量。

如果您想检查 NSNull,我建议您阅读 this question 和相关答案。

我猜错误是 answerArray != nil - Swift 很愚蠢,因为 returns 这里的错误是 "not convertible to String"。更有帮助的是 answerArray is not Optional.

这就是你的问题 - 你有 let answerArray : AnyObject... - 而 AnyObject 不是 Optional。在 Swift 中,'answerArray' 永远不会是 'nil',因为只有 Optional 类型可以是 nil.

如果不查看 jsonparser.objectWithString 的作用,我很难更正您的代码,但实际上,编译器告诉您您正在检查非可选类型是否为 nil - 这是不正确的。