1
我需要通過網絡發送數據作爲NSData。作爲格式可以僅在運行時確定(例如:消息類型,對象等,類型的對象的數目),我使用以下代碼來/去分組的NSData爲什麼下面的代碼從NSData返回不正確的值?
要打包:
NSMutableData *data = [NSMutableData dataWithCapacity:0];
unsigned int _state = 66;
[data appendBytes:&state length:sizeof(state)];
要我使用的緩衝液(接收不同iOS設備上之後)
void *buffer = malloc(255);
[data getBytes:buffer length:sizeof(unsigned int)];
unsigned int _state = (unsigned int)buffer;
....
解包,因爲最終會有很多不同整數/漂浮等存儲在NSData的。
- (BOOL)sendData:(NSData *)data toPlayers:(NSArray *)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error
-(void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
但問題是,當我解壓:使用蘋果遊戲中心的API存儲花車的數量,等等。我發送和接收數據 - 第一個INT可確定消息的類型,第二個INT單個int,而不是66,我得到一些像401488960或399903824這樣的隨機值(每次我解包時它的不同,即使我每次都發送66次)。 爲什麼數據不正確?我是否錯誤地解包?