我正在创建一个类来存储我的游戏的统计信息。我想将每轮得分存储到一个可变数组中,该数组可以持久化并写入文件。
我正在使用 NSCoding 协议并实现 encodeWithCoder 和 initWithCoder 方法。
#define masteredComponentsKey @"masteredComponents"
#define scoresKey @"scores"
-(void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:_masteredComponents forKey:masteredComponentsKey];
[encoder encodeObject:_scores forKey:scoresKey];
}
-(id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if (self)
{
_masteredComponents = [decoder decodeObjectForKey:masteredComponentsKey];
_scores = [decoder decodeObjectForKey:scoresKey];
}
return self;
}
由于数组是指向 Objective-C 中对象的指针,我认为我的分数需要是一个对象包装的整数,例如 NSNumber 或 NSValue。但是,这些对象没有实现 NSCoding 协议。
那么使用 NSCoding 保存一堆数字的最佳方法是什么?
----这是我的第一篇 StackOverflow 帖子,所以请原谅任何不寻常的礼仪----