Как сохранить NSUInteger с помощью NSCoding?

Как сохранить NSUInteger с использованием протокола NSCoding , учитывая, что в NSCoder нет такого метода, как -encodeUnsignedInteger: (NSUInteger) anInt forKey: (NSString *) aKey , как для NSInteger ?

Следующее работает, но это лучший способ сделать это? Это создает ненужные объекты.

@interface MYObject : NSObject <NSCoding> {
    NSUInteger count;
}  

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:[NSNumber numberWithUnsignedInteger:count] forKey:@"count"];
}

- (id)initWithCoder:(NSCoder *)decoder {
    self = [super init];
    if (self != nil) {
        count = [[decoder decodeObjectForKey:@"count"] unsignedIntegerValue];
    }
    return self;
}
25
задан Johan Kool 15 September 2010 в 06:01
поделиться