Мне кажется, что документация PubNub для начала работы в Swift не применяется к версиям ранее PubNub 4.0. Я не могу успешно установить обратный вызов для регистрации в PubNub.Установите обратный вызов в Swift для PubNub 4.0 для получения сообщений
Мой код:
class Communicator: NSObject, PNObjectEventListener {
var pubNubClient: PubNub
override init(){
let config = PNConfiguration(
publishKey: "my_publish_key",
subscribeKey: "my_subscribe_key"
)
pubNubClient = PubNub.clientWithConfiguration(config);
super.init()
pubNubClient.addListener(self)
pubNubClient.subscribeToChannels(["my_channel"], withPresence: false)
}
func didReceiveMessage(client: PubNub!, message: PNMessageResult!){
/* THIS METHOD NEVER GETS REACHED */
}
}
копания в источник PubNub немного, это область, которая, как представляется, возникают проблемы:
- (void)addListener:(id <PNObjectEventListener>)listener {
dispatch_async(self.resourceAccessQueue, ^{
if ([listener respondsToSelector:@selector(client:didReceiveMessage:)]) {
/* this block is never reached!!! */
[self.messageListeners addObject:listener];
}
/* Remaining Lines Stripped Away */
});
}
Я все еще относительно новые для Swift и интеграции с Objective C. Мне любопытно, есть ли проблемы с respondsToSelector
, поскольку код Objective C ссылается на код Swift.
Сообщения, безусловно, пройдены; в библиотеке PubNub есть еще одна функция нижнего уровня, которая регистрирует все полученные сообщения.
Любая помощь будет высоко оценена.
Привет Скотт это хорошая новость, дайте нам знать, если есть что-то мы можем предоставить детали с [email protected] – PubNub
В настоящее время я могу получить к нему доступ только, message.data => { message = "{}"; signededChannel = 123; timetoken = 14392105288780634; } – Nigilan
Как я могу получить доступ к «сообщению» внутри него? – Nigilan