【发布时间】:2015-12-24 19:25:13
【问题描述】:
目前正在尝试将 Sinch SDK 桥接到我的 Swift 应用程序中,但遇到以下错误:
“无法将“SINMessageRebRTCImpl”类型的值转换为“ChatMessage””
1) SINMessageRebTyCImpl 类型在 AppDelegate.swift 文件中的以下函数中创建:
func messageSent(message: SINMessage, recipientId: String) {
self.saveMessagesOnParse(message)
**NSNotificationCenter.defaultCenter().postNotificationName(SINCH_MESSAGE_SENT, object: self, userInfo: ["message": message])** }
2) SINMessageRebTyCImpl 然后传递给位于我的视图控制器之一中的以下函数
func messageDelievered(notification: NSNotification){
let chatMessage: ChatMessage = (notification.userInfo["message"] as! ChatMessage)
self.messageArray.append(chatMessage)
}
3) 然后代码在上述 sn-p 的第二行崩溃。
let chatMessage: ChatMessage = (notification.userInfo["message"] as! ChatMessage)
有关更多信息,这里是我也尝试转换的 swift 类“ChatMessage”的代码。
Import UIKit
Import Foundation
class ChatMessage: NSObject, SINMessage {
var messageId: String
var recipientIds: [AnyObject]
var senderId: String
var text: String
var headers: [NSObject : AnyObject]
var timestamp: NSDate
}
(注意,“Import Sinch”不需要在上面列出的“ChatMessage”类中,因为我在 Bridging-Header 中有它)
那么,我错过了什么/做错了什么?
【问题讨论】:
-
课程是什么样的,如果您仍然需要帮助,请发布该课程的代码
-
这是第二个代码块。 :)
-
对不起,当我问这个问题时,有些东西被切断了,我正在寻找这个类:SINMessageRebRTCImpl。那是它抱怨的那个,所以想看看它是由什么制成的
-
你得到的错误告诉我你已经创建了一个 SINMessageRebRTCImpl 类型的对象并且你试图将它转换为 ChatMessage。但是,您没有在哪里表明这种类型的 SINMessageRebRTCImpl 是从 ChatMessage 继承的。我看到 ChatMessage 遵循 SINMessage 协议,但它看起来与 SINMessageRebTyCImpl 的类型不同。那么你能发布 SINMessageRebTyCImpl 的血统吗?这可能会帮助你得到你的答案。还是我错过了什么?
-
我想这就是你的答案,它从不遵守聊天消息并且没有继承所以它会抛出错误
标签: xcode swift parse-platform sinch