我在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);
}
}
答案 0 :(得分:0)
编辑方案 - >运行 - >诊断 - >取消选择[启用地址清理程序]。
这将解决问题。但是不知道为什么会引起这个问题。