我不想强迫我的用户更新到iOS 6,因此我想找到一种方法将NSCoder用于自定义类型和枚举。
我发现this article解释了最近引入的NS_ENUM宏,它基本上使运行时库更容易检索自定义枚举/类型的元数据。
是否有替代方式来编码自定义枚举?
我找到this answer,编码为INT我需要做什么?枚举是int但我不确定它们是否可以更改为int32或int64。
答案 0 :(得分:1)
是的,将其编码为int,你应该没问题。您可以使用其值创建NSNumber,然后对其进行编码。那将是最常见的情况。
答案 1 :(得分:0)
只需将值编码为NSNUMBER 。用于任何版本的iOS。
// #pragma mark Protocolo NSCoding
- (void)encodeWithCoder:(nonnull NSCoder *)aCoder {
[aCoder encodeObject:@(self.customValue) forKey:@"customKey"];
}
- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder {
self = [super init];
if (self) {
self.customValue = [aDecoder decodeObjectForKey:@"customKey"];
}
return self;
}