我解决了这个问题,通过改变数据包的格式,我发送用户定义结构,它具有不同的数据类型,如整数和字符,当这个发送到其他播放器并从NSdata解码时,它没有像零和null那样接收,
我改变我的数据包格式,就像现在我发送NSString,
NSString *moveString =[ NSString stringWithFormat:@"/,%i,%i,%i,%i",oMoveMade.getFrom(),oMoveMade.getTo(),oMoveMade.getFromsquare(),oMoveMade.getTosquare()];
NSString *temp = [ NSString stringWithFormat:@"%i,", oMoveMade.getFrom()];
[moveString stringByAppendingString:temp];
[moveString stringByAppendingString:[ NSString stringWithFormat:@"%i,",oMoveMade.getTo()]];
[moveString stringByAppendingString:[ NSString stringWithFormat:@"%i,", oMoveMade.getFromsquare()]];
[moveString stringByAppendingString:[ NSString stringWithFormat:@"%i", oMoveMade.getTosquare()]];
NSLog(@"movestring %@",moveString);
NSData *package = [moveString dataUsingEncoding:NSUTF8StringEncoding];
[self.currentMatch sendDataToAllPlayers:package withDataMode:GKMatchSendDataReliable error:&error];
这不是完全解决方案,但在我的情况下,它解决了我的问题,如果有人有更好的解决方案,欢迎帮助我们