国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

runtime使用技巧一

2019-11-14 20:30:38
字體:
來源:轉載
供稿:網友

runtime運行時:

  轉做ios開發有一段時間了,但一直沒有時間整理知識,今天開始分享自己的一些心得,主要為了交流學習,錯誤的地方希望大家多多指正,共同進步,好的下面進入正題。runtime很多人一定不陌生(陌生的話,大家可以選學習一下,網上有很多大神已經給出了),但我們做到學以致用了么?下面我來分享一點我在runtime中使用的一點心得,希望對大家有所幫助。

runtime反射屬性列表:

通過runtime可以反射取到我們運行時類的屬性列表。這個其實對我們開發是非常有幫助的。

今天來講它的一種使用方法:

MVC模式中,我們封裝的模型中會包含大量的實體,屬性。而我們在開發的時候經常遇到傳遞model的情況,為了開發方便,需要查看model中各個屬性的值。而runtime就幫我們很好的解決了這個問題。廢話不多說了,直接上代碼。

-(void)PRintAll:(id)obj{    NSString * str = nil;    str = [NSString stringWithFormat:@"/n%@:/n",object_getClass(obj)];    str = [str stringByAppendingString:[self printStr:obj Num:0]];    str = [NSString stringWithFormat:@"%@",str];    NSLog(@"%@",str);}-(NSString *)printStr:(id)obj Num:(NSInteger)num{    unsigned int outCount, i;    objc_property_t *properties = class_copyPropertyList([obj class], &outCount);    if (outCount == 0) {        return [NSString stringWithFormat:@"%@",obj];    }    NSString * str = nil;    NSString * nullStr = [self printNullStr:num];    str = @"{";    for (i=0; i<outCount; i++) {        objc_property_t property = properties[i];        NSString * key = [[NSString alloc]initWithCString:property_getName(property)  encoding:NSUTF8StringEncoding];        id value = [obj valueForKey:key];        str = [NSString stringWithFormat:@"%@ /n %@%@:%@",str,nullStr,key,[self printStr:value Num:key.length + num +1]];    }    str = [NSString stringWithFormat:@"%@ /n %@}",str,nullStr];    return str;}-(NSString *)printNullStr:(NSInteger)num{    NSString * str = @"";    for (int i = 0 ; i<num; i++) {        str = [str stringByAppendingString:@" "];    }    return str;}

記得需要申明頭文件

#import <objc/runtime.h>

將上面的方法 添加到NSObject的類別當中,在.pch中申明為全局的

這樣任何一個id對象就都可以調用printAll方法來輸出打印了

效果如下:

014-05-06 17:38:58.013 LTTest[10011:90b] 

MyTestModle:

 name:吃飯了 

 address:喝水了 

 model:{ 

       name:吃飯了

       address:2 

       mymodel:{ 

               name:吃飯了

               address:喝水了

               } 

       } 

 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉首市| 杂多县| 汾阳市| 安丘市| 英德市| 乐昌市| 马公市| 五家渠市| 景谷| 密云县| 沅陵县| 京山县| 内黄县| 新疆| 黄龙县| 上杭县| 岳阳县| 满城县| 马边| 博湖县| 兰坪| 望城县| 内黄县| 英超| 平泉县| 新沂市| 桦南县| 义马市| 沂南县| 会东县| 河津市| 邵武市| 元氏县| 广安市| 石泉县| 隆子县| 肇庆市| 文化| 中西区| 金寨县| 虞城县|