ios开发小技巧-用宏化简代码

在IOS开发中,要做字典转模型一般情况如下:


 1 /**
2 * 声明方法
3 */
4 - (instancetype) initWithDictionary:(NSDictionary *)dict;
5 + (instancetype) carWithDictionary:(NSDictionary *)dict;
6
7 /**
8 * 实现方法
9 */
10 - (instancetype)initWithDictionary:(NSDictionary *)dict
11 {
12 if (self = [super init]) {
13 [self setValuesForKeysWithDictionary:dict];
14 }
15 return self;
16 }
17
18 + (instancetype)carWithDictionary:(NSDictionary *)dict
19 {
20 return [[ZYCar alloc]initWithDictionary:dict];
21 }

先在头文件中声明,再在.m

文件中实现具体的方法,而且这些方法的内容基本一致,可以用宏简化。

2.新建一个.h文件,并在其中添加如下代码:


 1 #define InitH(name)  2 - (instancetype)initWithDict:(NSDictionary *)dict;  3 + (instancetype)name##WithDict:(NSDictionary *)dict;
4
5 #define InitM(name) 6 - (instancetype)initWithDict:(NSDictionary *)dict 7 { 8 if (self = [super init]) { 9 [self setValuesForKeysWithDictionary:dict]; 10 } 11 return self; 12 } 13 + (instancetype)name##WithDict:(NSDictionary *)dict 14 { 15 return [[self alloc] initWithDict:dict]; 16 }
17
18 #endif

引用这个.h文件后,上面方法的声明和实现可以化简为一句

InitH(name);InitM(name); name为模型类名

ios开发小技巧-用宏化简代码,布布扣,bubuko.com

时间: 2024-08-03 11:21:18

ios开发小技巧-用宏化简代码的相关文章

iOS开发小技巧--定义宏和pch文件的使用

一.创建pch文件,默认跟项目同名 二.告诉系统,编译的时候要编译pch文件的步骤 三.把经常用到的宏  或者  分类 包含到这里

27个iOS开发小技巧

<span style="word-wrap: normal; word-break: normal; line-height: 1.5em; font-size: 14px; outline: none; color: rgb(51, 51, 51); font-family: 'Helvetica neue', Helvetica, sTheiti, 微软雅黑, 黑体, Arial, Tahoma, sans-serif, serif;"><span style=

iOS开发小技巧之--WeakSelf宏的进化

我们都知道在防止如block的循环引用时,会使用__weak关键字做如下定义: __weak typeof(self) weakSelf = self; 后来,为了方便,不用每次都要写这样一句固定代码,我们定义了宏: #define WeakSelf __weak typeof(self) weakSelf = self; 之后,我们可以比较方便的在需要的地方: WeakSelf; ... [weakSelf doSomething]; 再后来,我们发现不止self需要使用weak,可能有部分变

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

【转】IOS开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

IOS开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 -)     Number -)      Number

iOS开发——小技巧:Mac开源小软件PushMeBaby,还要啥后端,测试APP推送只靠Xcode!

PushMeBaby是一个github的开源Mac小软件,地址:https://github.com/stefanhafeneger/PushMeBaby,它非常简单,编译的时候带上APP的推送证书(生产环境还是开发环境视你情况而定),然后加上想要推送到的设备的deviceToken即可,实测推送即时性极佳. 这是程序主界面: 只用轻轻一点Push,消息就推送到设备了,简直就是傻瓜级良心应用,必须为作者点32个赞! 这里谈谈程序编译过程中需要注意的,从github上拖下来之后,command+b

iOS开发小技巧--定时器的使用技巧

一.定时器的使用技巧 -- 定义好了定时器后,添加两个方法,一个是添加定时器的方法,另一个是移除定时器的方法. 使用的时候也要注意,一定先移除之前的timer,然后再添加timer

iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换

一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖子数据有个模型,模型中还有一个最热评论的集合数据,集合数据要求是ChaosComment模型数据,然后ChaosComment模型中还有一个user字典(ChaosUser模型),如图: 解决方案:利用MJExtension,实现mj_objectClassInArray方法,告诉模型中的这个集合属