Я использую библиотеку под названием libmosquitto в приложении для iPhone.
Библиотека написана на C. Она получает push-уведомления и поэтому работает в потоке.
Однако я хочу взять полученные данные и отобразить их в UITableView (я думаю,) Я должен написать обратные вызовы, которые libmosquitto использует как функции C, а не как методы Objective C, поэтому я не могу получить доступ к «self», чтобы сделать:
У кого-нибудь есть подобные проблемы, есть ли другой способ, которым я мог бы обновить интерфейс?
Внутри одного из моих методов Objective C я называю это:
mosquitto_message_callback_set(mosq, my_message_callback);
Иmy_message_callback определяется как:
void my_message_callback(void *obj, struct mosquitto_message *message)
{
NSLog(@"Do this thing:");
if(message->payloadlen){
const char *payload = (const char *)message->payload;
[array addObject:[NSString stringWithUTF8String: payload]];
//[self performSelectorOnMainThread:@selector(updateTable) withObject:nil waitUntilDone:NO];
//printf("%s %s\n", message->topic, message->payload);
}else{
//printf("%s (null)\n", message->topic);
}
//fflush(stdout);
}
Спасибо