GameKit Уведомление о смене пользователя - PullRequest
1 голос
/ 20 сентября 2010

У меня проблемы с игровым комплектом. Все работает нормально, проблема заключается только в смене пользователя. Я хочу знать, когда пользователь выйдет или изменит учетную запись в GameCenter, когда мое приложение будет запущено. Я использую следующий код для такого рода уведомлений, но он не работает

 NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc addObserver: self selector:@selector(authenticationChanged) name:GKPlayerAuthenticationDidChangeNotificationName object:nil];

Я не получаю никаких уведомлений, этот вид загружен!

Есть идеи? Пожалуйста, помогите мне !!

Я пытался создать новый проект только с входом в игровой центр и уведомлением, но проблема не решена: (

- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(authenticationChanged) name:GKPlayerAuthenticationDidChangeNotificationName object:nil];
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)        {NSLog(@"SDADA  %@",error);}];
NSLog(@"%@",[[GKLocalPlayer localPlayer]alias]);
 }


  -(void)authenticationChanged

   {

NSLog(@"ooo");

    }

что я забыл ??

Ответы [ 3 ]

2 голосов
/ 07 ноября 2010

Под iOS 4.1 GKPlayerAuthenticationDidChangeNotificationName не запускается в фоновом режиме под симулятором.Я сообщил об этом как об ошибке в Apple, и они ответили, что это уведомление сработает при возобновлении работы в iOS 4.2

0 голосов
/ 20 сентября 2010

ОК, теперь я знаю свою проблему, но у меня нет решения. Проблема в том, что поле isAuthenticated GKLocalPlayer, когда пользователь выходит из этого поля, не изменяется. Есть что-то, что я забыл? есть идеи ??

|||||| ПРОБЛЕМА - МОДУЛЬ И УСТРОЙСТВО ВСЕ РАБОТАЕТ!

0 голосов
/ 20 сентября 2010

Код кажется правильным. Также проверьте, что ваш обработчик похож на:

- (void) authenticationChanged
{
    if ([GKLocalPlayer localPlayer].isAuthenticated)
        // Insert code here to handle a successful authentication.
    else
        // Insert code here to clean up any outstanding Game Center-related classes.
}

Также вы, вероятно, хотите зарегистрироваться для уведомления в функции инициализации, а не в viewDidLoad

...