win*_*ton 1 arrays ios pubnub swift swift2
我试图从完成块中单步执行 [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
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
如果有帮助,我正在使用 PubNub 在我的 Swift 应用程序中创建/存储消息。
谢谢!
当你写下
self.messagesArray.append(value) as? String
Run Code Online (Sandbox Code Playgroud)
你可能的意思是
self.messagesArray.append(value as? String)
Run Code Online (Sandbox Code Playgroud)
虽然
self.messagesArray.append(value)
Run Code Online (Sandbox Code Playgroud)
应该足够了,因为historyMessages已经是 type [String]!。
该错误表明您正在将 的结果self.messagesArray.append(value)(这是Void因为append没有返回任何内容)转换为String,这总是失败。
顺便说一句,您的代码使用的感叹号比应有的多。您应该使用guard-let 来确保您的变量不为零。