zoukankan      html  css  js  c++  java
  • iOS解档与归档

    // 解档

    - (instancetype)initWithCoder:(NSCoder *)aDecoder

    {

        if (self = [super init]) {

            unsigned int count;

            Ivar* ivars = class_copyIvarList([self class], &count);

            for (int i = 0; i < count; i++) {

                Ivar ivar = ivars[i];

                const char* name = ivar_getName(ivar);

                NSString* strName = [NSString stringWithUTF8String:name];

                id value = [aDecoder decodeObjectForKey:strName];

                [self setValue:value forKey:strName];

            }

            free(ivars);

        }

        return self;

    }

    // 归档

    - (void)encodeWithCoder:(NSCoder *)aCoder

    {

        unsigned int count;

        Ivar *ivars = class_copyIvarList([self class], &count);

        for (int i = 0; i < count; i++) {

            Ivar ivar = ivars[i];

            const char* name = ivar_getName(ivar);

            NSString* strName = [NSString stringWithUTF8String:name];

            id value = [self valueForKey:strName];

            [aCoder encodeObject:value forKey:strName];

        }

        free(ivars);

    }

    头文件必须导入 

    #import <objc/runtime.h>

    1
  • 相关阅读:
    SQL中的union
    SQL的类型转换
    Keytool生成证书
    Openssl生成证书
    Python示例-Json Parse
    Python示例-TCP Port Scan
    Python套接字
    TCP端口扫描
    Linux环境变量
    Python示例-Logging
  • 原文地址:https://www.cnblogs.com/fantasy3588/p/5557852.html
Copyright © 2011-2022 走看看