为什么来自ios游戏中心的GKLocalPlayer在验证成功时返回nill

时间:2015-11-15 12:46:14

标签: ios objective-c game-center

我在ios 9中使用demo来测试游戏中心,[GKLocalPlayer localPlayer]返回正确的信息,但是当我在我的应用中使用时,它返回nil。我找不到原因。演示和应用程序使用相同的包标识符和签名。

任何人都知道答案,请帮助绝望的我! 抱歉英语不好,希望你能理解他们。 它可以由复杂的线程引起吗? 请回答我!!!!! 求你回答!!!!! SOS! See a code sample

//here is some of codes i use;
- (void)authenticateLocalUser : (bool)bLoginGame{

if(!gameCenterAvailable)
{
    return;
}

NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO)
{
    [GKLocalPlayer localPlayer].authenticateHandler=^(UIViewController* viewcontroller, NSError *error) {
        if(viewcontroller != nil)
        {
            if(bLoginGame)
            {
                [g_sharedInstanceAppDelegate.viewController presentViewController:viewcontroller animated:YES completion:nil];
            }
        }
        else if(error == nil && [GKLocalPlayer localPlayer].authenticated)
        {
            if(bLoginGame)
            {
                NSString* uid = [GKLocalPlayer localPlayer].playerID;
                NSString* name = [GKLocalPlayer localPlayer].displayName;
                GameCenterLoginCallback(uid, name, nil, false);
            }
        }
        else
        {
            NSLog(@"LOGIN FAILED!");
            if(bLoginGame)
            {
                GameCenterLoginCallback(nil, nil, error, true);
            }
        }
    };
}
else{
    NSLog(@"Already authenticated!");
    if(bLoginGame)
    {
        NSString* uid = [GKLocalPlayer localPlayer].playerID;
        NSString* name = [GKLocalPlayer localPlayer].displayName;
        GameCenterLoginCallback([GKLocalPlayer localPlayer].playerID, name, nil, false);
    }
}

1 个答案:

答案 0 :(得分:0)

很伤心没有人给我正确的答案...... 但今天我突然发现[GKLocalPlayer localPlayer]信息为零的原因.....所以我写在这里,因为有些人可能需要它......

  

编辑方案 - >运行 - >诊断 - >取消选择[启用地址清理程序]。

这将解决问题。但是不知道为什么会引起这个问题。