2

こんにちは、次のコードを使用して、Bluetooth で利用可能なデバイスを識別しています。

_session = [[GKSession alloc]initWithSessionID:sessionid displayName:sessionid sessionMode:GKSessionModePeer];

_session.delegate = self;

[_session setDataReceiveHandler:self withContext:nil];

_session.available = YES;

デリゲートメソッドも追加しました

 - (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state{

NSLog(@"state : %@",state);

switch (state)
{
    case GKPeerStateConnected:
    {

        NSLog(@"%@ connected ",peerID);

        break;
    }
    case GKPeerStateDisconnected:
    {

        NSLog(@"%@ disconnected ",peerID);
        break;
    }
    case GKPeerStateAvailable:
    {
        NSLog(@"Available : %@",peerID);
        break;
    }
    case GKPeerStateUnavailable:
    {
        NSLog(@"Un Available : %@",peerID);
        break;
    }
    default:
        break;
   }

 }

しかし、このメソッドが呼び出されることはありません。何が問題になる可能性がありますか? 私を助けてください !!!

4

2 に答える 2

1

まあ、コードは問題ないようです。デリゲートを適切に宣言していますか?.h の < GKSessionDelegate > という意味ですか?

displayName なしで GKSession を初期化してみてください:

_session = [[GKSession alloc]initWithSessionID:sessionid displayName:nil sessionMode:GKSessionModePeer];
于 2011-11-15T13:17:02.760 に答える
1

同じセッション ID を使用していることを確認してください。代わりにセッション ID として NULL を試してください。アプリが作成します。

于 2012-01-18T01:38:51.197 に答える