我正在使用自定义界面为iOS开发一款基于回合制的游戏,我发现我的配对界面存在一个非常奇怪的问题。以下代码用于显示活动匹配列表,我验证用户,然后获取匹配列表,最后一步是加载匹配,以便我可以显示所有信息。
当我构建应用程序时出现问题,转到配对视图控制器并将其单独放置5分钟;然后,当我尝试删除匹配时,我在loadingMatchWithID:
Error Domain=NSCocoaErrorDomain Code=4097 "The operation couldn’t be completed. (Cocoa error 4097.)
代码每次都正常工作,删除,创建匹配,刷新,但如果我单独离开视图控制器5分钟,然后尝试删除我得到错误。奇怪的部分是localPlayer通过身份验证测试,并正确加载matches数组然后在加载匹配时停止。
另一件事情发生了,如果出现错误,我按下主页按钮并打开应用程序,再次输入所有单词并正确加载匹配项。
我认为我的身份验证存在问题,但错误在哪里?
更新:问题出现在iOS7中,但在iOS6中可以使用!
[localPlayer authenticateWithCompletionHandler:^(NSError *error)
{
if (error)return;
[GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error)
{
for (int i = 0; i < matchesArray.count; i++)
{
[GKTurnBasedMatch loadMatchWithID:[[matchesArray objectAtIndex:i]matchID] withCompletionHandler:^(GKTurnBasedMatch *updatedMatch, NSError *error)
{
if (error != nil)
{
NSLog(@"Error: %@",error.description);
}
}];
}
}];
}];
答案 0 :(得分:2)
经过多天的搜索和测试后,我发现了什么问题。问题在于退出然后删除匹配,removeWithCompletionHandler:
在participantQuitInTurnWithOutcome:
内,并且不知何故这些操作会在没有任何通知的情况下从游戏中心注销玩家,奇怪的是所有{ {1}}测试会成功。
最令人沮丧的部分可能是代码大部分工作,并且每次都在iOS 7以下的设备上工作。