2013-02-06 104 views
4

我正在使用Game Center遇到最奇怪的行爲。遊戲中心沙盒中缺少邀請

我正在與GKTurnBasedMatch和朋友建立回合制比賽。本地播放器的驗證完美。使用GKTurnBasedMatch類方法loadMatchesWithCompletionHandler:似乎明智地返回GKTurnBasedMatch對象。要發起新的比賽並邀請Game Center的朋友,我使用標準GKTurnBasedMatchmakerViewController

當我創建匹配GKTurnBasedMatchmakerViewController時,它們在showExistingMatches屬性爲YES時顯示在那裏,對於遊戲創建者。

但是,如果我邀請另一位使用GKTurnBasedMatchmakerViewController的玩家,接收玩家永遠不會收到邀請。沒有遊戲中心推送通知,並且在GKTurnBasedMatchmakerViewController中沒有(除了一次或兩次以及偶爾)遊戲帶有「邀請」標題。

奇怪的是,如果初始用戶結束了他們通過邀請創建的遊戲,該玩家將收到「遊戲結束」遊戲中心通知。

使用loadMatchesWithCompletionHandler:,對於邀請玩家(正確playerID值在participant S,在participant的正確GKTurnBasedParticipantStatus)返回matches是有意義的,但什麼都沒有顯示出來了邀請的玩家。

我使用兩個獨立的設備,都明確登錄到遊戲中心的沙箱模式,一切都設置在iTunes連接等。這兩個遊戲中心帳戶設置爲接受邀請。

任何人都見過類似的東西嗎?

+0

您是否正在訂閱'GKTurnBasedEventHandlerDelegate'?我不確定這是否是您的問題,因爲我認爲代表消息是從GameCenter應用程序本身啓動的。只是另一個邊緣情況下要注意。 – livingtech

+0

好的建議。在處理任何事情之前,我的問題都是這樣Game Center本身的推送通知沒有出現,這是怪異的部分。我想我已經解決了這個問題(請參閱答案)。現在來確定他們什麼時候來,他們正在處理'GKTurnBasedEventHandlerDelegate'和其他人。 –

回答

2

可能的解決方案:當邀請者第一次移動,並且郵件endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:被髮送時,我沒有在第一個參數中發送適當的參與者,因此轉向從未被設置爲被邀請者。