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

  • 相关阅读:
    Codeforces 1372D Omkar and Circle
    一个估算
    CF 1348F Phoenix and Memory
    caterpillar tree
    ABC167F Bracket Sequencing
    【troubleshooting】中文输入法下,CMD 光标消失
    Visual Studio 2019创建并调试vue.js项目(Iview admin)
    Mysql知识点集合篇
    spring boot集成mybatis-plus(注解模式)
    spring boot集成mybatis(注解模式)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10641326.html
Copyright © 2020-2023  润新知