轉載 mark666(簡書作者), 鏈接:http://www.jianshu.com/p/63ee533a7705
我們在創建模型的時候,常常要寫一大堆惡心的@property(nonatomic, copy) NSString *name;垃圾代碼,遇到這個就惡心的想吐,我就想能不能自動給我生成了,你還別說網上github上就有這種軟件,有興趣的可以去搜一下,但是作為一個程序員不能老想着用別人的東西,所以我就給NSObject添加一個分類,當傳入一個字典會自動生成打印處理,接下來需要做的就是command + c然后command + v到自己的模型中,然后采用了李明傑大神的MJExtension.h這個框架給模型數據數據賦值的方式(也就是運行時的方式),或者大家也可以通過KVC來賦值,都可以,下面提供生成屬性代碼的分類
// 自動生成屬性聲明的代碼 + (void)propertyCodeWithDictionary:(NSDictionary *)dict { NSMutableString *strM = [NSMutableString string]; [dict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { NSString *str; NSLog(@"%@",[obj class]); if ([obj isKindOfClass:NSClassFromString(@"__NSCFString")] || [obj isKindOfClass:NSClassFromString(@"NSTaggedPointerString")] || [obj isKindOfClass:NSClassFromString(@"__NSCFConstantString")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSString *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFNumber")]) { str = [NSString stringWithFormat:@"@property (nonatomic, assign) int %@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFArray")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSArray *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFDictionary")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSDictionary *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFBoolean")]) { str = [NSString stringWithFormat:@"@property (nonatomic, assign) BOOL %@;",key]; } [strM appendFormat:@"\n%@\n",str]; }]; NSLog(@"%@",strM); }
本文會傳一個簡易的gitHub的鏈接,
https://github.com/markdashi/baiduCourse,項目里是有pch文件的,只不過由於原先設置的路徑是絕對路徑,所以你下載下來之后路徑改變了,你重新定向一下pch的文件路徑就行了;TAGRGETS(BaiduCourse) ->BuildSettings ->Prefix Header 雙擊原先的路徑,刪除,然后把項目中的pch文件拖到白色輸入框,重新運行就行了
以上是mark666(簡書作者),以此轉載記錄!
