美文网首页
iOS Runtime应用之自动归档

iOS Runtime应用之自动归档

作者: LWide | 来源:发表于2018-11-02 10:51 被阅读0次

    归档

    - (void)encodeWithCoder:(NSCoder *)aCoder 
    {
        // 获取类的所有成员变量
        unsigned int count = 0;
        Ivar *ivars = class_copyIvarList([self class], &count);
        for (int i = 0; i < count; i++) {
            // 取得i位置的成员变量
            Ivar ivar = ivars[i];
            const char *name = ivar_getName(ivar);
            NSString *key = [NSString stringWithUTF8String:name];
            [aCoder encodeObject:[self valueForKey:key] forKey:key];
        }
    }
    

    解档

    - (id)initWithCoder:(NSCoder *)aDecoder {
        if (self = [super init]) {
            // 获取类的所有成员变量
            unsigned int count = 0;
            Ivar *ivars = class_copyIvarList([self class], &count);
            for (int i = 0; i < count; i++) {
                // 取得i位置的成员变量
                Ivar ivar = ivars[i];
                const char *name = ivar_getName(ivar);
                NSString *key = [NSString stringWithUTF8String:name];
                [self setValue:[aDecoder decodeObjectForKey:key] forKey:key];
            }
        }
        return self;
    }
    

    end

    相关文章

      网友评论

          本文标题:iOS Runtime应用之自动归档

          本文链接:https://www.haomeiwen.com/subject/oouqxqtx.html