码迷,mamicode.com
首页 > 其他好文 > 详细

(转)一句话实例化模型(MJ老师厉害)

时间:2014-10-29 21:25:32      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   ar   使用   sp   strong   

  读书人偷书不算偷

  在iOS开发中,很多时候我们需要用字典来实例化模型,这就意味着没需要实例化一个模型的时候都需要重复的写init方法来实例化模型,为了“偷懒”,可以使用宏定义来减少代码

  定义一个头文件"initWithDict.h"

 1 // 英文字母、数字、_
 2 //##为宏定义中得连接符  “\”表示下一行也属于宏
 3 #define kInitH(name)  4 - (id)initWithDict:(NSDictionary *)dict;  5 + (id)name##WithDict:(NSDictionary *)dict;
 6 
 7 #define kInitM(name)  8 + (id)name##WithDict:(NSDictionary *)dict  9 { 10     return [[self alloc] initWithDict:dict]; 11 }

  然后在每一个需要用字典来实例化的模型中导入头文件"initWithDict.h",在定义构造方法时直接使用宏定义,传入参数名即可,示例如下:

#import "initWithDict.h"
@interface WKProvince : NSObject

@property (nonatomic, copy) NSString* name;
@property (nonatomic, strong) NSDictionary* cities;


kInitH(province);
 1 #import "WKProvince.h"
 2 
 3 @implementation WKProvince
 4 
 5 
 6 - (id)initWithDict:(NSDictionary *)dict
 7 {
 8     if (self = [super init]) {
 9         self.name = dict[@"name"];
10         self.cities = dict[@"cities"];
11     }
12     return  self;
13 }
14 
15 kInitM(province);
16 @end

 

(转)一句话实例化模型(MJ老师厉害)

标签:style   blog   io   color   os   ar   使用   sp   strong   

原文地址:http://www.cnblogs.com/pretty-guy/p/4060493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!