Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding 为基于回合的游戏数据编码向NSData添加更多变量_Encoding_Nsdata_Game Center - Fatal编程技术网

Encoding 为基于回合的游戏数据编码向NSData添加更多变量

Encoding 为基于回合的游戏数据编码向NSData添加更多变量,encoding,nsdata,game-center,Encoding,Nsdata,Game Center,我正在制作一个基于回合的游戏,我将一个整数变量“points”存储到NSData中,然后由gamecenter存储。到目前为止,我的做法如下: NSString*newString=[[NSString alloc]initWithFormat:@“%i”,points] NSData*data=[newString dataUsingEncoding:NSUTF8StringEncoding] 我需要将更多变量存储到NSData*数据中。我该怎么做 我现在知道,您可以通过以下方式在字符串*ne

我正在制作一个基于回合的游戏,我将一个整数变量“points”存储到NSData中,然后由gamecenter存储。到目前为止,我的做法如下:

NSString*newString=[[NSString alloc]initWithFormat:@“%i”,points]

NSData*data=[newString dataUsingEncoding:NSUTF8StringEncoding]

我需要将更多变量存储到NSData*数据中。我该怎么做

我现在知道,您可以通过以下方式在字符串*newString中存储2个整数:

NSString*newString=[[NSString alloc]initWithFormat:@“%i,%i”,点,其他整数]


但是,我不知道如何解码,因为字符串将存储为上一个字符串后面的一个整数值。无论如何,这可能不是最好的实施方案,因此任何建议都将不胜感激。

您可以这样做:

// for encoding
int32_t points = ...;
int32_t otherInteger = ...;
NSMutableData *data = [NSMutableData data];
[data appendBytes:&points length:sizeof(int32_t)];
[data appendBytes:&otherInteger length:sizeof(int32_t)];
.
.
.

// for decoding
NSData *data = ...;
int32_t points;
int32_t otherInteger;
int index = 0;
NSRange range;

range = NSMakeRange(index, sizeof(int32_t));
[data getBytes:&points range:range];
index += sizeof(int32_t);

range = NSMakeRange(index, sizeof(int32_t));
[data getBytes:&otherInteger range:range];
index += sizeof(int32_t);

.
.
.