Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 游戏中心沙箱中缺少邀请_Ios_Objective C_Cocoa_Game Center_Gamekit - Fatal编程技术网

Ios 游戏中心沙箱中缺少邀请

Ios 游戏中心沙箱中缺少邀请,ios,objective-c,cocoa,game-center,gamekit,Ios,Objective C,Cocoa,Game Center,Gamekit,我在游戏中心经历了最奇怪的行为 我正在与GKTurnBasedMatch和朋友建立基于回合的比赛。本地播放器的身份验证工作得很好。使用GKTurnBasedMatch类方法loadMatchesWithCompletionHandler:似乎可以明智地返回GKTurnBasedMatch对象。为了发起新的比赛并邀请游戏中心的朋友,我使用标准的GKTurnBasedMatchmakerViewController 当我使用GKTurnBasedMatchmakerViewController创建匹

我在游戏中心经历了最奇怪的行为

我正在与
GKTurnBasedMatch
和朋友建立基于回合的比赛。本地播放器的身份验证工作得很好。使用
GKTurnBasedMatch
类方法
loadMatchesWithCompletionHandler:
似乎可以明智地返回
GKTurnBasedMatch
对象。为了发起新的比赛并邀请游戏中心的朋友,我使用标准的
GKTurnBasedMatchmakerViewController

当我使用
GKTurnBasedMatchmakerViewController
创建匹配时,当游戏创建者的
showExistingMatches
属性为
YES
时,它们会显示在那里

但是,如果我使用
GKTurnBasedMatchmakerViewController
邀请另一个玩家,则接收玩家永远不会收到邀请。没有游戏中心推送通知,并且在
GKTurnBasedMatchmakerViewController
中没有(除了一次或两次,偶尔)带有“邀请”标题的游戏

奇怪的是,如果发起用户随后以邀请结束他们创建的游戏,该玩家将收到“游戏结束”游戏中心通知

使用
loadMatchesWithCompletionHandler:
,返回的
匹配对邀请玩家有意义(在
参与者
s中更正
playerID
值,在
参与者
s中更正
GKTurnBasedParticipantStatus
),但对于邀请的玩家没有显示任何内容

我使用的是两个独立的设备,它们都明确地登录到游戏中心的沙箱模式,所有的东西都在iTunes Connect中设置,等等。两个游戏中心帐户都设置为接受邀请


有人见过这样的情况吗?

可能的解决方案:当邀请者第一次移动时,发送了消息
endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:
,我没有在第一个参数中发送正确的参与者,因此,该回合从未设置为受邀者的回合。

您是否订阅了
gkturnbasedeventhandler代表
?我不确定这是否是您的问题,因为我认为这方面的代理消息是从GameCenter应用程序本身启动的。只是另一个需要注意的边缘案例。好建议。我的问题是在处理任何事情之前。来自游戏中心的推送通知没有出现,这是奇怪的部分。我想我已经解决了这个问题(见答案)。现在要做的工作是确保当他们来时,他们被
gkturnbasedeventhandlerregate
和其他人正确处理。