2011-03-14 2 views
1

안녕하십니까 gksession.code를 사용하여 데이터를 보내고 있습니다 아래에 주어집니다. 데이터를 잘 보내려면 및 데이터 send.But 다른 메시지가 나타납니다 device.When 내가 코드를 디버깅 할 때 그것을받을 수 없습니다 전화를 걸지 않고 메서드 내부로 들어 가지 않습니다. 데이터를 수신합니다. 아무에게도이 정보가 없습니다. 무엇이 잘못 되었습니까? 아니면 어떻게 에서 문제를 해결할 수 있습니까?gksession을 사용하여 데이터를 보내고받는 방법?

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    gs=[manager getgkSession]; 
    //[cs retain] 
    self.title = [manager displayNameForPeer:manager.currentConfPeerID]; 
    NSLog(@"name of mangager is %@",self.title); 

} 


-(IBAction) btnSend:(id) sender 
{ 
    //---convert an NSString object to NSData--- 
    NSData* data; 
    NSError *error=nil; 
    NSString *str = [NSString stringWithString:txtMessage.text]; 
    data = [str dataUsingEncoding: NSASCIIStringEncoding];  
    if (gs) 

    { 
     [self.gs sendDataToAllPeers:data 
         withDataMode:GKSendDataReliable 
           error:&error];  
      if (!error) 
     { 
      NSLog(@"Did send data"); 
     } 
     else 
     { 
      NSLog(@"Send data failed: %@", [error localizedDescription]); 
     } 
    }   
} 


    - (void) receiveData:(NSData *)data 
       fromPeer:(NSString *)peer 
       inSession:(GKSession *)session 
       context:(void *)context { 

     //---convert the NSData to NSString--- 
     NSString* str; 
     str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];  
     NSLog(@"data received is %@",str); 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Data received" 
                 message:str 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     NSLog(@"receive data"); 
     [alert show]; 
     [alert release];  
    } 

답변

2

는 수신기에 당신을 위해 GK 세션을 setDataReceiveHandler:withContext: 전화를 했습니까? 데이터 보내기를 시작하기 전에 수행하지 않은 경우.

2

헤더 파일에 다음을 구현했는지 확인하십시오. GKPeerPickerControllerDelegate