2014-03-13 43 views
1
-(void) match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID { 
NSMutableArray* grid = (NSMutableArray*)[NSKeyedUnarchiver unarchiveObjectWithData:[data bytes]]; 

    _game.gameMap.grid = grid; 
    [_game updateMap:_game.localPlayer.playerFleet]; 
    _mainGameController = [[MainGameController alloc] initMainGameControllerWithGame:_game andFrame:self.frame.size]; 
    [self addChild:_mainGameController.containers.overallNode]; 

}EXC_BAD_ACCESS代码= 1个接收数据时

-(BOOL)sendMap { 
NSError* error; 

NSData* packet = [NSKeyedArchiver archivedDataWithRootObject:_game.gameMap.grid]; 
[_game.gameCenter.match sendDataToAllPlayers: packet withDataMode:GKMatchSendDataUnreliable error:&error]; 
if (error != nil) { 
    NSLog(@"error"); 
} 
return false; 

}

此代码返回到下一行坏访问错误:

NSMutableArray* grid = (NSMutableArray*)[NSKeyedUnarchiver unarchiveObjectWithData:[data bytes]]; 

回答

3

unarchiveObjectWithData:预计其参数成为NSData的一个实例。这不是[data bytes]返回。你可能只想要data

相关问题