zoukankan      html  css  js  c++  java
  • 对字典转模型模块的理解

    本博客应该会随着时间的推移有所改动,毕竟昨天下班才开始研究MJ老师的MJExtension框架.

    记录此博客的目的:为了能更好的理解MJ老师的这套框架!

    我研究本框架的方式:从main.m中出发,一层一层的进入.我并不是看,而是一边看一遍理解,再一遍敲代码操作(并非copy).遇到难理解的陌生地方,重建小项目研究.

    1,从整体上看,MJExtension主要用了c语言底层的运行时机制,头文件的导入方式为:#import <objc/runtime.h>.

    2,在iOS开发中,OC语言最终还是编译成了c语言的代码.从开发的角度来说,OC语言开发:简单,易懂.从代码的运行效率角度来说:使用运行时机制,能提高代码的效率.

    3,在本框架中,不仅运用了金典的较底层运行时机制,还应用了效率较高的块语句.里面很多地方用到了块语句的回调.实在是太金典的,反正我想不到.

    4,在典转模型模块中主要用到的运行时方法:

      (1)class_getSuperclass得到一个类的父类,当当前类为基类的时候,返回nil.

      (2)class_copyIvarList获得所有的成员变量,如:Ivar* ivars = class_copyIvarList(c, &count);

      (3)ivar_getName获得类中的成员变量名,如:Ivar ivar = ivars[i];const char* name = ivar_getName(ivar);

      (4)ivar_getTypeEncoding获得类中成员变量的类型符,如:const char* type = ivar_getTypeEncoding(ivar);

      (5)释放内存,如:free(ivars);

      主要的就是这些,可能有漏的.

    5,到现在为止,我也才理通了字典转模型这一模块.当然也有的地方不明白MJ老师的用意.比如下面这个地方:(红框:代表我的注释,其它都是源代码)

    主要用到的就是这些方法.当然,这些方法一看就会.最主要的是怎么应用才是最重要的.所以这个框架,不仅用了很多很高很金典的语法,这套框架的展现了,一个iOS语法在开发中的实际应用的重要性.就用上面的那些方法来说吧,这些方法再笨的人都会用,但不是所有人都能合理的用到实际开发中.我现在才看完了"字典转模型"这一模块,就学到了很多东西.

    "与优秀的人在一起,让自己变得更优秀."

    (对这句话的解说:如果你与优秀的人在一起,你就具备了变得更优秀的可能性.为什么只是具备了可能性,因为一切还得要靠自己!)

    就如同对象编程中对"异步"一词的理解一样:异步,只是代表了具备开启线程的能力,并非一定要开启多个线程.开不开启,还得要听"操作系统"的.嘿嘿...

    好了,我就要开始研究MJExtension框架的其它模块了...

  • 相关阅读:
    Unix/Linux环境C编程入门教程(32) 环境变量那些事儿
    Unix/Linux环境C编程入门教程(34) 编程管理系统中的用户
    Unix/Linux环境C编程入门教程(30) 字符串操作那些事儿
    Unix/Linux环境C编程入门教程(29) 内存操作那些事儿
    Unix/Linux环境C编程入门教程(28) 日期时间那些事儿
    Unix/Linux环境C编程入门教程(27) 内存那些事儿
    模板函数冲突
    C语言的本质(30)——C语言与汇编之ELF文件格式
    C语言的本质(29)——C语言与汇编之寄存器和寻址方式
    DG观察日志传输
  • 原文地址:https://www.cnblogs.com/iOS771722918/p/4453939.html
Copyright © 2011-2022 走看看