2016-08-19 59 views
0

我试图编写一个XMPP客户端。与我的服务器的连接是好的,但是当我的Roster中的某个人在线时,该应用程序崩溃,因为“buddyWentOnline”意外发现无?XMPP buddyWentOnline发现无

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(名称:字符串) FUNC buddyWentOffline(名称:字符串) FUNC didDisconnect() } – Matak

+0

我用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 
}