从 '()' 转换为无关类型 'String' 总是失败

Cast from '()' to unrelated type 'String' always fails

我正在尝试从完成块单步执行 [AnyObject] 数组并将项目转换为字符串,以便我可以将它们放入 tableView 中。但是,当我尝试附加数组的各个值时,出现此错误:Cast from '()' to unrelated type 'String' always fails。这是代码:

client.historyForChannel(ids, start: nil, end: nil, withCompletion: { (result, status) -> Void in

    if status == nil {
        if result!.data.messages.count > 0 {
            let historyMessages = result!.data.messages as? [String]
            for value in historyMessages!{
                self.messagesArray.append(value) as? String //error
            }
        }
    }
})

如果有帮助,我正在使用 PubNub 在我的 Swift 应用中发送 create/store 消息。

谢谢!

你写的时候

self.messagesArray.append(value) as? String

你的意思可能是

self.messagesArray.append(value as? String)

虽然

self.messagesArray.append(value)

应该足够了,因为 historyMessages 已经是 [String]! 类型了。

错误是说您正在将 self.messagesArray.append(value) 的结果(这是 Void,因为 append 没有 return 任何东西)到 String ,它总是失败。

顺便说一句,您的代码使用的感叹号比应有的多。你应该使用 guard-let 来确保你的变量是非零的。