Как я могу сделать свой собственный класс сериализуемым? Я конкретно хочу записать это в файл на iPhone, просто plist и тебе, класс является просто простым классом экземпляра, просто NSStrings и возможно NSUrl.
Вы захотите реализовать протокол NSCoding . Реализуйте initWithCoder: и encodeWithCoder: и ваш пользовательский класс будет работать с NSKeyedArchiver и NSKeyedUnarchiver.
Ваш initWithCoder: должен выглядеть следующим образом:
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super init]) // this needs to be [super initWithCoder:aDecoder] if the superclass implements NSCoding
{
aString = [[aDecoder decodeObjectForKey:@"aString"] retain];
anotherString = [[aDecoder decodeObjectForKey:@"anotherString"] retain];
}
return self;
}
и кодировать initWithCoder:
- (void)encodeWithCoder:(NSCoder *)encoder
{
// add [super encodeWithCoder:encoder] if the superclass implements NSCoding
[encoder encodeObject:aString forKey:@"aString"];
[encoder encodeObject:anotherString forKey:@"anotherString"];
}