現在、基本レベルで GameKit を使用しています。2 つのデバイスを接続して、それらの間でメッセージを送信できます。
私は 3 つのデバイスを持っています。デバイス A、B、C と呼びます。
個別のセットアップとして、A から B、A から C、B から C を接続できます。
A を B に接続してから B を C に接続しようとすると、デバイス C はデバイス B が使用可能であることを示しますが、デバイス B は回転し続け、「使用可能な iPod、iPhone を探しています...」と表示されます。
ではpeerPickerController:sessionForConnectionType:
、B を C に接続しようとしているときに、デバイス BGKSession
が A への接続で使用しているものと同じものを再利用しようとしています...デバイス B で新しいセッションを作成すると、接続できるためですデバイス C に接続しますが、デバイス A への接続はドロップします。
は次のsessionForConnectionType
とおりです。
-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
// session is a synthesized GKSession
if (session == nil) {
session = [[GKSession alloc] initWithSessionID:nil displayName:@"" sessionMode:GKSessionModePeer];
session.delegate = self;
}
return session;
}