2016-08-19 3 views
0

Ich versuche, einen XMPP-Client zu programmieren. Die Verbindung zu meinem Server ist in Ordnung, aber wenn jemand in meinem Roster online ist, stürzt die App ab, weil "buddyWentOnline" unerwartet keine gefunden hat?XMPP buddyWentOnline gefunden Null

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

Haben Sie die Implementierung für "buddyWentOnline" hinzugefügt? – souvickcse

+0

Protokoll ChatDelegate { func buddyWentOnline (name: String) func buddyWentOffline (name: String) func didDisconnect() } – Matak

+0

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

Antwort

0

Ich habe meinen Fehler gefunden. Ich habe nicht die Delegierten für die anfänglichen Viewcontroller gesetzt:

Klasse 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 
}