开始

作者: df10c59e137c | 来源:发表于2016-06-28 19:54 被阅读10次

是时候写写技术blog了,记录自己开发过程中所学和所得

runtime

是OC作为动态语言很关键的一个类库

里面有很多程序运行时调用的方法

OC黑科技之所在

能动态的对类,变量,方法,协议进行管理和添加

接下来是一个简单的获取类所有变量的例子:

//存放类变量数量
unsigned int propertyCount
//获取测试类的变量数组
objc_property_t *properties = class_copyPropertyList(TestClass, &propertyCount);

//遍历变量数组
for (int i =0; i < propertyCount; i++) {

    //获取变量对象
     objc_property_t property = properties[i];

    //获取变量名
    const char *propertyName = property_getName(property);
    NSString *name = @(propertyName);

     
     unsigned int attributesCount;
     //获取变量属性数组
    objc_property_attribute_t *attributes = property_copyAttributeList(property, &attributesCount);

    //遍历属性数组
     for (int x =0; x <attributesCount; x++) {
           //属性对象
          objc_property_attribute_t attribute =attributes[x];
           //获取属性值
          const char *attrValue = property_copyAttributeValue(property, attribute.name);
          //属性名
          NSString *attNameStr = @(attribute.name);
          //属性值字符串
          NSString *attValueStr = @(attrValue);
          //打印一下
          NSLog(@"attribute --Name:%@ --Value %@",attNameStr,attValueStr);
     }    
}

以上是runtime一个简单的使用,对类变量的基础操作,最近将数据导入模型对象的时候用到了这些,只是OC不支持泛型约束,目前只是编译器有泛型识别,所以将JSON数据导入模型时只能依赖协议来判断集合中的对象类型,处理导入集合的数据时会麻烦一点,需要声明协议,目前没发现更好的处理方法.

相关文章

  • 开始!开始!开始!

    人之初,登上人生舞台,开始了你的表演。只不过这表演,有纪录片,有科幻片,有主动参与,也有被动作为。 一路走过来,有...

  • 开始开始

  • 开始…开始…

    不知不觉,2016仅剩2个多月就要过去了! 一月份很快又要过年了,艾玛,这时间过的可真够快的啊! 想想自己完成了哪...

  • 开始开始

    《开始开始》 有时候,开始真的可以从某个开始开始 比如,孩子们开学的这个清晨 一早的风,吹着车把上的手,还是能吹到...

  • 开始开始

    历史进程 1. 三座大山被推翻 2. 社会主义制度确立 3. 中国特色社会主义 历史事件(32) ...

  • 开始是开始的开始

    开始是开始的开始,种子没有说它要马上发芽,错过一个春天,还会有下一个春天。 沉睡的种子,依然是拥有澎湃的生命力,当...

  • 开始的开始

    怀揣着对大学的梦想,我走进了我的大学NCU。 刚进大学时的军训,水得让人舒服,没有一丝锻炼人的意味...

  • 开始的开始

    开始的开始 从未想过这是一盘死棋 只是如分别几年再聚首的同学一样 互加个微信 偶尔聊上几句 至今都想不起 究竟是从...

  • 开始的开始

    从前一直以为,高三那年的下半学期,是我十七岁生命中度过的最难熬的日子了。 没完没了的周练模拟考,灯不熄笔不停的晚自...

  • 开始的开始

    简书是一个激发我创作欲望的APP,每当我想放弃梦想的时候只要打开这个软件,阅读里面的文章,总是不自觉的想,写文...

网友评论

      本文标题:开始

      本文链接:https://www.haomeiwen.com/subject/cnvtjttx.html