5

私は単純なターンベースの単語ゲームに取り組んでいますが、招待がどのように機能するかを理解するのに苦労しています. ユーザー A がユーザー B をゲームに招待するとき、ユーザー B がこのゲームをカスタム マッチ インターフェイス (つまり、ユーザー B のすべてのゲームがリストされている画面) で表示できるようにしたいと考えています。ユーザー B がゲームに招待されたときに通知をクリックしても問題ありませんが、ユーザー B が自分でアプリに移動した場合でも、自分のインターフェイスからゲームを表示したいと考えています。

このマッチ インターフェイス画面が表示されるたび[GKTurnBasedMatch loadMatchesWithCompletionHandler:]に、ローカル プレイヤーのすべてのマッチを取得するために使用しています。これで、ユーザー B は招待された試合を見ることができると思いますが、この新しい試合は表示されません。を介して招待を受け入れるGKTurnBasedMatchmakerViewControllerと、ユーザーは期待どおりにゲームに入りますが、これをさらに不可解にしているのはGKTurnBasedMatchmakerViewController、招待を受け入れずに自分を開いてキャンセルすると、カスタム マッチ インターフェイスに新しいマッチが表示されることです。しかし、ユーザー A から送信された一致データが欠落しています。

GKTurnBasedMatch要約すると、カスタム インターフェイスを使用して招待を適切に表示し、受け入れる方法を本当に知りたいと思っています (を使用する必要はありませんGKTurnBasedMatchmakerViewController)。ありがとう!

4

2 に答える 2

1

この質問は何人かの人々に興味があるようです.

まず第一に、新しい一致がまったく表示されなかった理由は、私がそう[GKTurnBasedMatch loadMatchesWithCompletionHandler:]であったように、ビューを更新するたびに呼び出していなかったからです. 私が思い出したように、そこには本当の問題はありません。

本当の問題は、新しい を受信して​​表示してGKTurnBasedMatchいたが、データ (つまり、対戦相手の最初の動き) がまったく利用できなかった場合でした。基本的に、利用可能な[GKTurnBasedMatch loadMatchesWithCompletionHandler:]最新GKTurnBasedMatchのオブジェクトを提供することを保証するものではないようです。マッチが最新のものであることを確認するために、 (は GKTurnBasedMatches の 1 つです)[match loadMatchDataWithCompletionHandler:]によって返されたマッチごとに ,も呼び出す必要がありました。これは、その試合に関連付けられた最新の試合データをオブジェクトとして返します。その後、これを使用して、マッチ テーブル内のすべてのマッチが更新され、ゲーム センターの最新の変更が反映されていることを確認できました。[GKTurnBasedMatch loadMatchesWithCompletionHandler:]matchNSDataNSData

つまり、オブジェクトで使用loadMatchDataWithCompletionHandlerしてGKTurnBasedMatch、データが最新であることを確認します。

于 2013-04-02T18:16:05.977 に答える