如何使用enum的NSCoding协议?

bog*_*gen 9 enums objective-c nscoding ios

我有这个枚举:

typedef types {
    HBIntineraryTypeVisited = 0,
    HBIntineraryTypeUnvisited,
    HBIntineraryTypeUnknown,
    HBIntineraryTypeDeleted,
} HBIntineraryType;
Run Code Online (Sandbox Code Playgroud)

并希望使用nscoding协议将其与其他一些变量一起存储

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self) {
       _name = [aDecoder decodeObjectForKey:@"name"];
       // todo decode enum object
    }
}

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:_name forKey:@"name"];
    // todo encode enum object
}
Run Code Online (Sandbox Code Playgroud)

我使用什么编码器方法来解码和编码这种枚举?

Jim*_*Jim 5

一般来说,enums的表示可以变化。当使用Objective-C的工作,你应该使用NS_ENUM,以确保它的类型来表示枚举。这篇文章有更多的背景。

  • 这是将链接作为答案的缺点。你永远不知道他们什么时候开始显示 404 :( (3认同)