2012-09-27 21 views

回答

2
-(void)sendData 
{ 
NSString *mystring=[NSString stringWithFormat:@"lat=22.810000log=71.477989user=%@",lp.alias]; 
    int myscore=20; 
    NSError *error; 
    NSData* data=[mystring dataUsingEncoding: [NSString defaultCStringEncoding] ]; 
    BOOL success = [match sendDataToAllPlayers:data withDataMode:GKPlayerStateConnected error:&error]; 
    if (!success) { 
     NSLog(@"Error sending init packet:\n%@",error); 
    } 
} 

對於發送數據 哪裏匹配是GKMatch 的對象以及用於接收以下委託方法用於

- (void)match:(GKMatch *)theMatch didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {  


    if (match != theMatch) return; 
    NSString *string = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 
    NSLog(@"Received String : %@",string); 

    NSString* str_lat =[[[[string componentsSeparatedByString:@"lat="]objectAtIndex:1] componentsSeparatedByString:@"log="]objectAtIndex:0]; 


    NSString* str_long =[[[[string componentsSeparatedByString:@"log="]objectAtIndex:1] componentsSeparatedByString:@"user="]objectAtIndex:0]; 

    NSRange range = [string rangeOfString:@"user="]; 
    NSString *str_username = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 


    NSLog(@"str_lat%@",str_lat); 
    NSLog(@"str_long%@",str_long); 

    NSLog(@"str_username--%@",str_username); 
} 
數據