2013-12-12 14 views
6

現在、ゲームセンターサンドボックスを使用してゲームセンターアウェアアプリケーションをテストしています.1つのインスタンスはiOSシミュレータともう1つはRetina iPad Miniです。私はターンのイベントを受信する必要があるビューコントローラを持っているので、私は私のUIViewControllerサブクラスが採用GKLocalPlayerListenerプロトコルにplayer:receivedTurnEventForMatch:didBecomeActive:一貫性がない/まれに発生する

player:receivedTurnEventForMatch:didBecomeActive: 

メソッドを実装し、このラインを持つイベント

[[GKLocalPlayer localPlayer] registerListener: self]; 

に登録しますView Controllerのinitメソッドで使用します。しかし、Game Center Appには、ゲームの2つのインスタンスが接続されていると言っているにもかかわらず、このメソッドはほとんどの場合、iPad上で呼び出されていないと私はそれを呼び出すシミュレータのインスタンスを見たことがないと思う。しかし、Game Center Appに行くと、両方のインスタンスが更新され、両方のインスタンスがイベントを受信できることが示されます。これを引き起こす原因は何ですか?

+0

回避策よりも優れたものはありますか? –

+0

いいえ、私は決してしませんでした。 –

答えて

2

iOS 7/Xcode 5/iPhone 5で同じ問題が発生しました。 この問題を解決するには、アプリケーションIDに「ゲームセンター」の資格を追加するだけです。 Xcodeのプロジェクトの "Capabilities"タブに移動することで、これを行うことができます。

player:receivedTurnEventForMatch:didBecomeActive:は端末でのみ発生することにご注意ください。私はシミュレータ上で、この問題が見つかり

+0

ありがとうございましたが、それは問題ではありませんでした。私は尋ねる前にゲームセンターの資格を追加しました。私は好きなことを知りたいのですが、そのセレクタはデバイスでしか起動されていませんが...私はドキュメントでは見ませんでしたが、確かに正しいと思われますが。 –

+0

私の調査でした。また、それについては、stackoverflowで読む:http://stackoverflow.com/questions/15957576/gkturnbasedmatch-receive-data – Sergio

+0

また、それは招待状の受信に関する記述:https://developer.apple.com/library/ios/documentation/NetworkingInternet /Conceptual/GameKit_Guide/TestingYourGameCenter-AwareGame/TestingYourGameCenter-AwareGame.html – Sergio

1

この問題を回避するには、更新ボタンが一致データをシミュレータにロードされますUI、押し込まれ

loadMatchDataWithCompletionHandler: 

メソッドを呼び出すことです。

関連する問題