4

GKSession の問題に苦しんでいます。クライアントとサーバーがあり、クライアントはサーバー接続を試みます

[_gkSession connectToPeer:peerID withTimeout:10];

サーバーが接続を明示的に拒否し[_gkSession denyConnectionFromPeer:peerID]た場合、クライアントの接続connectionWithPeerFailed:withErrorは正しくトリガーされます。

ただし、サーバーが接続を無視したり、他の問題がある場合、クライアントは宇宙が熱で死ぬまでそこに座って接続しようとします. タイムアウトはまったく効果がないようです。

ドキュメントには、タイムアウトの設定にはタイムアウト間隔の指定以上のものが必要であることを示唆するものは何もありません-そして、クライアントの他のすべてのGKSessionデリゲートメソッドは正常に機能しています。ここで明らかな何かが欠けていますか?

4

1 に答える 1

4

私の経験から、GKSessionは非常にバグがあります。そして、私はアップルがこれらのバグを修正しているとは思わない。私がすることは、あなたが他の人に接続しようとしたときにタイマーを開始することです-接続が成功した場合はタイマーをキャンセルし、タイムアウトしたときに接続をキャンセルします。よろしく!

于 2012-05-29T10:37:40.567 に答える