我是新来GKTurnBasedMatch,我试图找出哪些是对“matchData”转弯过程中玩家之间发送的良好做法。 所有的教程,我发现主要包括发送文本字符串,我想送了很多不止于此。 这将是巨大的,如果有人可以品脱我到一个更高级教程。
我想去做的例子是一场战斗。 这两名球员有自己的化身,他们有不同的细节(健康,攻击,防御等),我应该怎么送这个数据? 我看到的唯一可行的办法就是编纂所有比赛细节(他们中的很多)到一个NSDictionary和发送,使他们可以再次放回定义匹配对象。 我应该实现NSCoding?
谢谢!
我会实现存储需要一个把所有的相关信息,一类和有类实现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];
档案和序列化编程指南也是一个很好的起点。
另一种选择是使用像RestKit库和它的从JSON或XML对象映射到/。