這部分是通過ReactiveXMPP 獲取在線好友的 通過 第二部分
同樣在單例中添加一個獲取好友的方法 通過block 吧好友返回
<code>
- (void)loadFriend:(XMPPLoadFriendBlock)FriendBlock{
}
</code>
這里獲取好友通過 NSFetchedResultsController 這個類的實例對象中的fetchedObjects得到好友
當(dāng)好友改變時通過NSFetchedResultsController對象的代理:controllerDidChangeContent 通知
照常添加方法
<code>
- (void)loadFriend:(XMPPLoadFriendBlock)friendBlock{
[self loadFriendModule];
[[self rac_signalForSelector:@selector(controllerDidChangeContent:)] subscribeNext:^(id x) {
// 傳給block 好友
FriendBlock(_fetchedController.fetchedObjects);
}];
}
</code>
這里注意問題
如果不實現(xiàn) controllerDidChangeContent 方法:
<code>
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller{
}
</code>
[[self rac_signalForSelector:@selector(controllerDidChangeContent:)] 就不能監(jiān)聽好友的值導(dǎo)致我發(fā)正常獲取好友 這是一個小坑 具體原因有待研究....
在tableViewController控制器viewDidLoad執(zhí)行l(wèi)oadFriend方法:
<code>
[[XMPPTool sharedXMPPTool] loadFriend:^(NSArray *friends) {
NSLog(@"%ld",friends.count);
self.friends=friends;
[self.tableView reloadData];
}];
</code>
這是可以正常獲取到好友啦
完整Dome