2016-08-19 8 views
0

を見つけました。私のサーバーへの接続はOKですが、私のRosterの誰かがオンラインになっているとき、 "buddyWentOnline"が予期せずnilを見つけたのでアプリがクラッシュしていますか?XMPP buddyWentOnlineは、私はXMPPクライアントをプログラムしようとしているゼロ

func xmppStream(sender: XMPPStream!, didReceivePresence presence: XMPPPresence!) { 
    let presenceType = presence.type() 
    let myUsername = sender.myJID.user 
    let presenceFromUser = presence.from().user 

    if presenceFromUser != myUsername { 
     print("Did receive presence from \(presenceFromUser)") 
     if presenceType == "available" { 
      delegate.buddyWentOnline("\(presenceFromUser)") 
     } else if presenceType == "unavailable" { 
      delegate.buddyWentOffline("\(presenceFromUser)") 
     } 
    } 
} 
+0

は、あなたが "buddyWentOnline" の実装を追加しましたか? – souvickcse

+0

プロトコルChatDelegate { FUNCのbuddyWentOnline(名称:String)を FUNCのbuddyWentOffline(名称:String)を FUNCのdidDisconnect() – Matak

+0

} Iはhttps://github.com/processone/demo-xmpp-ios – Matak

答えて

0

私の間違いが見つかりました。 私は初期のViewControllerのためのデリゲートを設定しませんでした:

クラスのViewController:のUIViewController、ChatDelegateは{

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    appDelegate.delegate = self 
} 
関連する問題