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

  • 相关阅读:
    Warning This file includes at least one deprecated or antiquated header
    springdata spring 的nosql的orm框架学习
    C#中this关键字的用法
    java 的svn客户端调用示例
    jsoncpp longlong 类型的扩展
    HTML中的a标签实现点击下载
    android实现自动安装
    键值对 纵一苇之所如
    Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。 纵一苇之所如
    C# 判断文件有没占用 纵一苇之所如
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10641326.html
Copyright © 2011-2022 走看看