2016-08-19 4 views
0

Я пытаюсь запрограммировать клиент XMPP. Соединение с моим сервером в порядке, но когда кто-то из моего реестра находится в сети, приложение рушится, потому что «buddyWentOnline» неожиданно нашел нуль?XMPP buddyWentOnline найдено nil

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

Я использовал 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 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^