游戏中心身份验证始终导致sigabrt

时间:2013-08-07 21:28:35

标签: ios objective-c game-center

这让我发疯了。每当我尝试使用Game Center验证本地播放器时,我都会得到一个线程1 sigkill。在我设置localPlayer的{​​{1}}后,它会异步发生:

authenticateHandler

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我经常看到systemVersion使用字符串比较而不是数字比较进行测试。尝试只打印

的值

[[[UIDevice currentDevice] systemVersion] floatValue]> = 6.0

验证该表达式没有任何问题。我知道以下方法有效:

-(BOOL) os6 {
    NSString *targetSystemVersion = @"6.0";
    NSString *currentSystemVersion = [[UIDevice currentDevice] systemVersion];
    if ([currentSystemVersion compare:targetSystemVersion options:NSNumericSearch] == NSOrderedAscending) {
        return NO;  //current system version is less than 6.0
    } else {
        return YES;
    }
}

答案 1 :(得分:0)

[GKLocalPlayer localPlayer]返回一个单例,__ weak会在某个时候释放它(我不明白何时会发生这种情况,但在将来的某个时间)。在块完成执行之前,localPlayer可能会与块一起被释放。没有必要释放单身人士。尝试删除__weak。

答案 2 :(得分:0)

尝试在__weak之前加GKLocalPlayer

我在代码和我使用的代码之间可以看到唯一差异...