Хорошо, у меня есть идеальный ответ для вас!
Вот код:
- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence {
// a buddy went offline/online
NSString *presenceType = [presence type]; // online/offline
NSString *myUsername = [[sender myJID] user];
NSString *presenceFromUser = [[presence from] user];
if (![presenceFromUser isEqualToString:myUsername]) {
if ([presenceType isEqualToString:@"available"]) {
[_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user is %@",presenceFromUser);
}
else if ([presenceType isEqualToString:@"unavailable"]) {
[_chatDelegate buddyWentOffline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user is invisible %@",presenceFromUser);
}
else if ([presenceType isEqualToString:@"subscribe"]) {
[_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user wants to subscribe %@",presenceFromUser);
}
}
}
Я предоставил вам полный код метода DidReceivePresence для вашего лучшего понимания.
Теперь позвольте мне объяснить вам код. Если вы заметите в условии else if, я сравниваю значение (элемент), которое мы получаем. Поэтому, когда я получаю строку в виде подписки (когда пользователь отправляет запрос на добавление в список друзей), вам просто нужно добавить этого конкретного пользователя в список друзей просмотра таблиц.
Вы можете получить имя пользователя от "senceFromUser ".
Если вам нужно больше понимания, напишите мне на blueobaid@gmail.com, потому что я не получаю оповещения, когда вы отвечаете на мой ответ, хотя я вернусь и сам отвечу здесь, чтобы это могло помочь и другим! и я собираюсь поставить учебник в ближайшее время на http://Czartechnogeeks.com/iSolutions
Я рад, что смог поделиться чем-то ценным для пользователя с помощью stackoverflow после того, как он мне очень помог.