2012-01-28 13 views
1

ピアの新しい表示名を読み取るには、GKSessionを強制終了して更新する必要があります。これをnilに設定して新たに起動することはできません。GKSession - セッションを終了して更新する

-(IBAction) btnRefresh:(id) sender { 

    self.currentSession = nil; 

    self.currentSession = [[GKSession alloc] initWithSessionID:@"anything" displayName:name sessionMode:GKSessionModePeer]; 
    self.currentSession.delegate = self; 
    self.currentSession.available = YES; 
    self.currentSession.disconnectTimeout = 0; 
    [self.currentSession setDataReceiveHandler:self withContext:nil]; 

    peerListAvailable = [[NSMutableArray alloc] initWithArray:[currentSession peersWithConnectionState:GKPeerStateAvailable]]; 

    for (NSString *peer in peerListAvailable) { 
     NSLog(@"found available peer; checking name and ID... %@, %@",[currentSession displayNameForPeer:peer], peer); 
    } 

何nilにcurrentSessionを設定すると間違っていると改めてそれを開始:以下のコードでは、forループ可能なピアを表示する中のNSLogが呼び出されません(エラーメッセージはありませんか)? GKSessionを更新する別の方法が分かっているのでしょうか? ありがとうございます。

答えて

3

次の方法がGKSessionセットアップとティアダウン説明:あなたは深く掘り下げるに興味があるなら

- (void)setupSession 
{ 
    gkSession = [[GKSession alloc] initWithSessionID:nil displayName:nil sessionMode:GKSessionModePeer]; 
    gkSession.delegate = self; 
    gkSession.disconnectTimeout = 5; 
    gkSession.available = YES; 
} 

- (void)teardownSession 
{ 
    gkSession.available = NO; 
    [gkSession disconnectFromAllPeers]; 
} 

を、GKSessionP2P見、GKSessionのアドホックネットワーク機能を示してデモアプリケーションを取ります。このアプリは、ローカルネットワーク上に広告を出し、利用可能なピアに自動的に接続し、ピアツーピアネットワークを確立します。

関連する問題