я добавил следующий метод в Facebook класс, чтобы получить список друзей пользователя:
-(BOOL) getFriendsList : (id<FBRequestDelegate>) delegate
{
if (! [self isSessionValid])
{
return NO;
}
else
{
[self requestWithGraphPath:@"me/friends" andDelegate:delegate];
return YES;
}
}
Для обработки реагировать с сервер я написал следующий метод:
- (void)request:(FBRequest *)request didLoad:(id)result
{
NSDictionary * data = result;
NSArray *separatedName;
Contact * current;
_contactsFromFacebook = [[NSMutableDictionary alloc] init];
for (NSDictionary * contact in data)
{
separatedName = [[contact objectForKey:@"name"] componentsSeparatedByString:@" "];
current = [[Contact alloc]
initWithFirstName:[separatedName objectAtIndex:0]
andLastName:[separatedName objectAtIndex:1]];
if(current.alphabeticKey)
{
[self.contactsFromFacebook addObject:current toExsistingArrayWithKey:current.alphabeticKey];
[self addFriendToImportList:current];
}
[current release];
}
self.allKeysSorted = [NSMutableArray arrayWithArray:[self.contactsFromFacebook allKeys]];
[self.tableView reloadData];
}
Примечания:
- класс "Контакт" является CLAS что я написал для хранения данных о контактах.
- Меня интересует только имя и фамилия друга.
- Я держу словарь, чтобы держать все контакты из Facebook, и др контакты, которые находятся в этом словаре будет отображаться в
UITableView
- В конце методы, я звоню
[self.tableView reloadData]
к (ре) загрузите все контакты, которые я только что получил из facebook. если вы попытаетесь позвонить ему раньше, например, в viewDidLoad
, вы просто получите пустую таблицу, потому что пока нет контактов.