내가 xmpp_messenger_ios & xmpp_messenger_ios 스위프트 MUC는 신속
XMPPFramework
를 사용하여 아이폰 OS에 MUC을하려고 여기에 방을 가입하는 코드입니다.func createOrJoinRoomOnXMPP(){
// location has named array of lat and long
NSLog("Creating room on XMPP")
let roomJID: XMPPJID = XMPPJID.jidWithString(self.roomID + "@conference.ip-172-31-41-100")
let roomData: XMPPRoomCoreDataStorage = XMPPRoomCoreDataStorage.sharedInstance()
let chatRoom = XMPPRoom.init(roomStorage: roomData, jid: roomJID, dispatchQueue: dispatch_get_main_queue())
chatRoom.activate(OneChat.sharedInstance.xmppStream)
chatRoom.addDelegate(self, delegateQueue: dispatch_get_main_queue())
// let history = DDXMLElement.elementWithName("history")
// // Get lst messegs of the room
// history.addAttributeWithName("maxstanzas", stringValue: "10")
chatRoom.joinRoomUsingNickname(OneChat.sharedInstance.xmppStream!.myJID.user, history: nil)
}
바로이 블록은이 코드에서 오류가 실행될 때 :
확장 OneMessage : XMPPStreamDelegate {
public func xmppStream(sender: XMPPStream, didSendMessage message: XMPPMessage) {
if let completion = OneMessage.sharedInstance.didSendMessageCompletionBlock {
completion(stream: sender, message: message)
}
//OneMessage.sharedInstance.didSendMessageCompletionBlock!(stream: sender, message: message)
}
public func xmppStream(sender: XMPPStream, didReceiveMessage message: XMPPMessage) {
let user = OneChat.sharedInstance.xmppRosterStorage.userForJID(message.from(), xmppStream: OneChat.sharedInstance.xmppStream, managedObjectContext: OneRoster.sharedInstance.managedObjectContext_roster())
if !OneChats.knownUserForJid(jidStr: user.jidStr) { // <<< ERROR LINE
OneChats.addUserToChatList(jidStr: user.jidStr)
}
if message.isChatMessageWithBody() {
OneMessage.sharedInstance.delegate?.oneStream(sender, didReceiveMessage: message, from: user)
} else {
//was composing
if let _ = message.elementForName("composing") {
OneMessage.sharedInstance.delegate?.oneStream(sender, userIsComposing: user)
}
}
}
}
치명적인 오류 : 예기치 않게 풀기 동안 전무 발견 옵션 값
나는 곧 그 점을 알아 챘다. 채팅방에 접속하면 이전 메시지를 가져 오므로 위의 코드가 실행됩니다.
ios에서 방 채팅을 위해 MUC를하고 있습니다. 도와주세요. 나는 수색했고 어떤 해결책도 찾지 못했다.
감사합니다.
치명적인 오류가 발생한 행은 무엇입니까? –
if! OneChats.knownUserForJid (jidStr : user.jidStr) {이것은 오류를주는 행입니다. –
'OneChats.knownUserForJid'의 리턴 값은 어떤 타입입니까? –