ios中使用NSCoding的问题,自定义数据类型包含自定义数据类型该怎么用
PHPz
PHPz 2017-04-17 13:58:28
[iOS讨论组]

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

PHPz
PHPz

学习是最好的投资!

全部回复(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较好。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号