我在 Swift IOS9.2 上使用 PubNub 4.2.5 并收到此 conflect 错误消息,任何想法如何解决。谢谢!
/Users/XXXX/xcode/XXXX/PubNub5/PubNub5/AppDelegate.swift:91:10: Objective-C method 'client:didReceiveStatus:' provided by method 'client(_:didReceiveStatus:)' conflicts with optional requirement method 'client(_:didReceiveStatus:)' in protocol 'PNObjectEventListener'
功能
//Handle subscription status change.
func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus) {
}
PubNub Subscribe iOS SDK Listener
应PNSubscribeStatus
相应的类。
完整的订阅代码就像下面的代码一样。查看 PubNub iOS Swift SDK v4.x 订阅 API 的完整文档。
self.client?.subscribeToChannels(["my_channel1","my_channel2"], withPresence: false)
// Handle new message from one of channels on which client has been subscribed.
func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) {
// Handle new message stored in message.data.message
if message.data.actualChannel != nil {
// Message has been received on channel group stored in
// message.data.subscribedChannel
}
else {
// Message has been received on channel stored in
// message.data.subscribedChannel
}
print("Received message: (message.data.message) on channel " +
"((message.data.actualChannel ?? message.data.subscribedChannel)!) at " +
"(message.data.timetoken)")
}
// Handle subscription status change.
func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
if status.category == .PNUnexpectedDisconnectCategory {
// This event happens when radio / connectivity is lost
}
else if status.category == .PNConnectedCategory {
// Connect event. You can do stuff like publish, and know you'll get it.
// Or just use the connected event to confirm you are subscribed for
// UI / internal notifications, etc
}
else if status.category == .PNReconnectedCategory {
// Happens as part of our regular operation. This event happens when
// radio / connectivity is lost, then regained.
}
else if status.category == .PNDecryptionErrorCategory {
// Handle messsage decryption error. Probably client configured to
// encrypt messages and on live data feed it received plain text.
}
}