数学基础:

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

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

基于集合空间的映射;

 

原理:

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)的​​信息​​,用来支持如指示存储位置、​​历史​​数据、​​资源​​查找、文件记录等功能。

 


------------------越是喧嚣的世界,越需要宁静的思考------------------ 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。