从 '()' 转换为无关类型 '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 来确保你的变量是非零的。
我正在尝试从完成块单步执行 [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 来确保你的变量是非零的。