10

i have this enum:

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

and want to store it along with some other variables using the nscoding protocol

- (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
}

What coder method do i use to decode and encode this kind of enum?

bogen
  • 9,954
  • 9
  • 50
  • 89

1 Answers1

5

Generally speaking the representation of enums can vary. When working with Objective-C, you should use the NS_ENUM macro to be sure of which type is used to represent the enumeration. There's more background in this article.

Jim
  • 72,985
  • 14
  • 101
  • 108
  • 3
    This is the drawback of putting links as answer. You can never tell when they would start showing 404 :( – Kaunteya Jul 07 '17 at 15:11
  • 1
    Most blog articles from Big Nerd Ranch were moved. Here is the new url: https://www.bignerdranch.com/blog/enum-num-num/ – Pierre Jul 10 '17 at 14:04