Make a Custom Class Serializable in Objective-c/iPhone?

后端 未结 1 484
长情又很酷
长情又很酷 2020-12-01 11:26

How can I make my own custom class serializable? I specifically want to write it to a file on iPhone, just plist and thee class is just a simple instance class, just NSStrin

相关标签:
1条回答
  • 2020-12-01 12:01

    You'll want to implement the NSCoding protocol. Implement initWithCoder: and encodeWithCoder: and your custom class will work with NSKeyedArchiver and NSKeyedUnarchiver.

    Your initWithCoder: should look like this:

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

    and encodeWithCoder:

    - (void)encodeWithCoder:(NSCoder *)encoder
    {
       // add [super encodeWithCoder:encoder] if the superclass implements NSCoding
       [encoder encodeObject:aString forKey:@"aString"];
       [encoder encodeObject:anotherString forKey:@"anotherString"];
    }
    
    0 讨论(0)
提交回复
热议问题