我将实现一个类来存储单回合所需的所有相关信息,并让该类实现 NSCoding。这意味着您可以在一个播放器的设备上将对象转换为 NSData,然后将其转换回另一端的对象。
这个网站http://samsoff.es/posts/archiving-objective-c-objects-with-nscoding有一个简单的例子来帮助你,这里是你需要的主要方法的例子:
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
self.health = [decoder decodeObjectForKey:@"health"];
self.attack = [decoder decodeObjectForKey:@"attack"];
isDead = [decoder decodeBoolForKey:@"isDead"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.health forKey:@"health"];
[encoder encodeObject:self.attack forKey:@"attack"];
[encoder encodeBool:isDead forKey:@"isDead"];
}
将您的对象编码为 NSData:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject: object];
转换回对象:
id *object = [NSKeyedUnarchiver unarchiveObjectWithData: inputData];
Archives and Serializations Programming Guide也是一个很好的起点。
另一种选择是使用像 RestKit 这样的库,它是与 JSON 或 XML 的对象映射。