开发者社区> 问答> 正文

ios中使用NSCoding的问题,自定义数据类型包含自定义数据类型该怎么用

screenshot如图,一个自定义的类Car里面包含了4个自定义类,那4个自定义类已经实现了NSCoding协议了,现在到Car这个类就不会写了,求教要怎么做

展开
收起
a123456678 2016-07-28 10:59:12 2085 0
1 条回答
写回答
取消 提交回答
  • -(id)initWithCoder:(NSCoder *)aDecoder
    {

    if (self = [super init]) {
        self.brand = [aDecoder decodeObjectForKey:@"brand"];
        self.series = [aDecoder decodeObjectForKey:@"series"];
        self.year = [aDecoder decodeObjectForKey:@"year"];
        self.model = [aDecoder decodeObjectForKey:@"model"];
    }
    return  self;

    }
    -(void)encodeWithCoder:(NSCoder *)aCoder
    {

    [aCoder encodeObject:self.brand forKey:@"brand"];
    [aCoder encodeObject:self.series forKey:@"series"];
    [aCoder encodeObject:self.year forKey:@"year"];
    [aCoder encodeObject:self.buttonArray forKey:@"model"];

    }
    只要那4个类都实现了NSCoding接口即可,它就会递归调用,也就是说,[aDecoder decodeObjectForKey:@"brand"] 会调Car_brand的-(id)initWithCoder:(NSCoder *)aDecoder。

    顺便说一下,iOS 里的类名是驼峰命名的,最好不要加下划线。比如Car_brand改成CarBrand较好。

    2019-07-17 20:01:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载