我在我的应用上使用GameCenter。我有这些行
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[localPlayer authenticateWithCompletionHandler:^(NSError *error) {
if (localPlayer.isAuthenticated)
{
}
问题是localPlayer.isAuthenticated标志始终为TRUE bur错误变量自带代码2 =“操作被取消”(???)。
我已从设备的游戏中心和商店退出,但此标志始终为真,我看不到游戏中心登录我的应用程序应该在启动时显示。我没有看到当使用游戏中心的游戏开始时总是显示的“欢迎”横幅。
如何强制退出游戏中心以使登录窗口再次显示?
我正在为iOS 4.3编译。
感谢
我现在发现,如果您从未登录过设备的游戏中心,就会发生这种情况。一旦你登录,并说你想在游戏中心使用你的用户名,该应用程序的工作原理。最糟糕的是:假设有人下载了游戏,但还没有设置游戏中心。那么,游戏永远不会适合他们?我的游戏应该专门用于游戏中心。所以,对我来说这是一个问题。
答案 0 :(得分:0)
对我而言,它的工作很棒。刚刚更改了
中的代码if([GKLocalPlayer localPlayer].authenticated)
要
if([GKLocalPlayer localPlayer].authenticated == NO)
//其他代码
if([GKLocalPlayer localPlayer].authenticated == NO)
{
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
[self processGameCenterAuth: error];
}];
}
- (void) processGameCenterAuth: (NSError*) error
{
if(error == NULL)
{
[mGameCenterManager reloadHighScoresForCategory: self.currentLeaderBoard];
}
else
{
// NSLog(@"%@\n\n",[NSString stringWithFormat: @"Reason: %@", [error localizedDescription]]);
AppController *app = (AppController*)[UIApplication sharedApplication].delegate;
if(!app.isgameCenterStarted)
{
UIAlertView* alert= [[[UIAlertView alloc] initWithTitle:@"Game Center Unavailable" message: @"Player is not signed in"
delegate: NULL cancelButtonTitle: @"OK" otherButtonTitles: NULL] autorelease];
[alert show];
}
else
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"GameCenterUnAvailable" object:nil];
}
}
}