使用iOS和Swift 3的代理方法中未接收xmpp状态

使用iOS和Swift 3的代理方法中未接收xmpp状态,ios,xmpp,xmppframework,Ios,Xmpp,Xmppframework,我在用猫鼬。我在Ubuntu服务器上,Swift 3在客户端。我无法在委托函数中获取用户的状态。我已经为订阅状态实现了这样的代码,这不是调用 func xmppRoster(_ sender: XMPPRoster!, didReceivePresenceSubscriptionRequest presence: XMPPPresence!) { debugPrint("XMPPRoster : didReceivePresenceSubscriptionRequest ")

我在用猫鼬。我在Ubuntu服务器上,Swift 3在客户端。我无法在委托函数中获取用户的状态。我已经为订阅状态实现了这样的代码,这不是调用

func xmppRoster(_ sender: XMPPRoster!, didReceivePresenceSubscriptionRequest presence: XMPPPresence!) {
        debugPrint("XMPPRoster : didReceivePresenceSubscriptionRequest ")
        debugPrint(presence)
        sender.acceptPresenceSubscriptionRequest(from: presence.from(), andAddToRoster: true)
    }
此外,当用户发送状态信息时,我无法在此委托方法中获取用户的状态信息:

func xmppStream(sender: XMPPStream!, didReceivePresence presence: XMPPPresence!) {
        debugPrint(presence)

    }

请告诉我哪里出错了

问题在于猜测方法声明从Objective-C到Swift的正确转换。以下XMPPFramework回调声明在Swift 4中有效:

@objc func xmppStream(_ stream:XMPPStream, didReceivePresence presence:XMPPPresence) {
    print("\(presence)")
}
请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。