Если вы не хотите использовать NSFetchedResultsController
, вы можете получить JID вашего списка, вызвав jidsForXMPPStream
в объекте хранения списка.
Вот как я его использовал -
- (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender{
[appDelegate.mContactHandler clearContacts];
NSArray* jids = [mXmppRosterStorage jidsForXMPPStream:self.xmppStream];
for (int i=0; i<jids.count; i++)
{
RosterContact* contact = [[RosterContact alloc]init];
contact.jid = [jids objectAtIndex:i];
[appDelegate.mContactHandler addContact:contact];
}
[self postResultNotification:kReload withResult:nil];
}
Я использовал метод делегата XMPPRoster, чтобы узнать, когда закончилась загрузка списка. Затем я извлекаю jid из хранилища и создаю свой собственный объект RosterContact
, который является просто пользовательским классом, который я создал для хранения контактных данных. Затем я публикую уведомление, чтобы перезагрузить табличное представление, в котором я показываю список контактов.
Вот моя декларация о ростере -
mXmppRosterStorage = [[XMPPRosterCoreDataStorage alloc] init];
mXmppRoster = [[XMPPRoster alloc] initWithRosterStorage:mXmppRosterStorage];
mXmppRoster.autoFetchRoster = YES;
mXmppRoster.autoAcceptKnownPresenceSubscriptionRequests = YES;
Я надеюсь, что это будет полезно.
person
noob
schedule
20.03.2015