私はGKSessionとGKPeerPickerControllerを使用してiOSゲームに取り組んでいます。2つのiOSデバイスを接続するプロセスは、たとえそれらが隣り合っていても、遅くて信頼性が低いことがわかりました。私のデバイスを「デバイスA」と「デバイスB」と呼びましょう。
通常は次のようになります。
各デバイスで、アプリの接続ボタンを押しました。次に、各デバイスに「iPad、iPhone、またはiPodtouchs」ウィンドウが表示されます。
通常、非常に迅速に、2つのデバイスはそれぞれもう一方が存在することに気づきます。
次に、デバイスの1つ(デバイスAなど)に他のデバイスに接続するように指示します。
すぐに、デバイスBのウィンドウに、デバイスAが使用できないと表示されます。
これはそれが迷惑になるところです。約1秒からまったくないまでの期間の後、デバイスAが接続を希望していることを示すウィンドウがデバイスBにポップアップし、デバイスBに接続を受け入れるかどうかを尋ねます。
上記のウィンドウがポップアップする場合は、すべてが正常に進行します。しかし、これには時間がかかることもあれば、まったく起こらないこともあります。
私は3つのデバイスを持っていますが、どちらを使用しても同様の問題が発生します。
これについて私にできることはありますか?
私の接続方法は非常に簡単です。
-(void) findPeerPickerOpponents {
GKPeerPickerController *picker;
picker = [[GKPeerPickerController alloc] init];
picker.delegate = self;
[picker show];
[self.connectionDelegate disableIdleTimer];
}