YYModel HandyJson

数学基础:

以类型集合空间为基础,多阶向量结构间的同构映射;

若两个数学结构之间存在同构映射,那么这两个结构叫做是同构的。

基于集合空间的映射;

原理:

1、根据类型名称获得类型的元信息;

2、根据映射控制信息对元信息进行整合,生成模型元信息;

3、进行数据的格式映射;

要素:元信息、映射控制、映射赋值

两个方向:

1、获取到类型的元信息后使用指针,对目标对象的内存进行直接操作;

2、获取到元信息后,使用kvc模式对变量进行操作;

元信息:

类的元信息:YYClassInfo

模型的元信息:_YYModelMeta,整合了类的元信息与映射控制信息;

YYModel协议提供转换控制;

类型变量的二阶构造:

NSObject *one = [cls new];

if ([one yy_modelSetWithDictionary:dictionary]) return one;

赋值操作:

static void ModelSetWithDictionaryFunction(const void *_key, const void *_value, void *_context) {

    ModelSetContext *context = _context;

    __unsafe_unretained _YYModelMeta *meta = (__bridge _YYModelMeta *)(context->modelMeta);

    __unsafe_unretained _YYModelPropertyMeta *propertyMeta = [meta->_mapper objectForKey:(__bridge id)(_key)];

    __unsafe_unretained id model = (__bridge id)(context->model);

    while (propertyMeta) {

        if (propertyMeta->_setter) {

            ModelSetValueForProperty(model, (__bridge __unsafe_unretained id)_value, propertyMeta);

        }

        propertyMeta = propertyMeta->_next;

    };

}

元信息是关于信息的信息,用于描述信息的结构、语义、用途和用法等。在计算机科学中,反射是指计算机程序运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。反射利用元信息为管理、控制和使用复杂信息提供了一种高效的途径。 通过从元信息到信息的反射机制,用户可以以更简单、更灵活、更自动化的方式使用信息本身。 元信息和元信息建模可以用于软件体系结构的描述和使用过程中。

https://baike.baidu.com/item/元信息/7554993

元数据Metadata),又称中介数据中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

猜你喜欢

转载自www.cnblogs.com/feng9exe/p/10641326.html