数学基础:

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

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

基于集合空间的映射;

原理:

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

最新文章

  1. vijos[1355]车队过桥问题
  2. 逗号分隔的字符串转换为行数据(collection)(续)
  3. MVC HTTP 错误 403.14 - Forbidden
  4. C#开发实例 鼠标篇
  5. JSP数据交互习题错误总结
  6. UVa 120 Stacks of Flapjacks【构造法】
  7. .net 图片压缩
  8. Centos 7 安装 PostgreSQL
  9. Shiro入门之一 -------- Shiro权限认证与授权
  10. 软工团队 - UML设计
  11. mybatis源码- 反射模块一(跟着MyBatis学反射):类级别信息的封装
  12. IDEA查看类继承关系及生成类关系图
  13. 【BZOJ2427】【HAOI2010】软件安装
  14. python字典dict的增、删、改、查操作
  15. Java Type Inference (类型推断)
  16. 同一个Tomcat部署两个project之间的通信问题
  17. 修改IP
  18. box-sizing 属性
  19. ASP.NET中使用UpdatePanel时用Response输出出现错误的解决方法
  20. Android 设置wifi共享电脑服务器资源

热门文章

  1. [android] android下创建一个sqlite数据库
  2. session图片验证码,页面和请求是两个地址。android手机好用,iphone 失效。
  3. [转] 快速部署Tomcat项目的Shell脚本
  4. C#如何通过属性名称反射出属性本身
  5. 快速上手ABP - Angular部分 - 如何最快速度了解相关API。
  6. 33.Odoo产品分析 (四) – 工具板块(4) – 问题追踪及群发邮件营销(1)
  7. iOS------自动查找项目中不用的图片资源
  8. finally知识讲解
  9. 生产环境下JVM调优参数的设置实例
  10. Kotlin入门(25)共享参数模板