如何使用enum的NSCoding协议?

时间:2013-01-31 09:51:00

标签: ios objective-c enums nscoding

我有这个枚举:

typedef types {
    HBIntineraryTypeVisited = 0,
    HBIntineraryTypeUnvisited,
    HBIntineraryTypeUnknown,
    HBIntineraryTypeDeleted,
} HBIntineraryType;

并希望使用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
}

我用什么编码器方法对这种枚举进行解码和编码?

1 个答案:

答案 0 :(得分:4)

一般来说,enum的表示形式可能会有所不同。使用Objective-C时,应使用the NS_ENUM macro来确定用于表示枚举的类型。 this article中有更多背景信息。