小实验property(nonatomic,assign)NSIntegerage;
上面的代码,如果是你,你平时怎么在Xcode中敲写的呢?
第一种:从左到右依次敲写
第二种:采用CodeSnippet
通过我们的肉眼观察,可以很容易的发现:第二种明显更快。
眼见为虚,那好,我们用数据来说话(控制变量法+录屏):
唯一不可控的是我在敲代码时的反应,暂且忽略不计。
第一种用时14秒,第二种用时及3秒,可以看出,差别还是很大的(说实在的,我自己之前也一直觉得第二种效率更高,但是没想过如此之高)。
代码块(CodeSnippet)
代码块(CodeSnippet),顾名思义,就是一个代码片段。
如何自定义代码块创建代码块
注意下图圈中,对应的颜色(左边是敲代码时展示的效果,右边是代码块的配置)。
这里注意要选择Objective-C(默认是Objective-C++),否则扩展(extension)中无效。
系统提供的代码块
dispatch_once、dispatch_after
staticdispatch_once_tonceToken;dispatch_once(onceToken,^{#codetobeexecutedonce#});returnYES;dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(#delayInSeconds#*NSEC_PER_SEC)),dispatch_get_main_queue(),^{#codetobeexecutedafteraspecifieddelay#});
for、for...in...
for(#initialization#;#condition#;#increment#){#statements#}for(#type*object#in#collection#){#statements#}自定义的代码块
格式:#注释#
属性
关键字属性
property(nonatomic,strong)#ClassName#*#propertyName#;///#注释#property(nonatomic,strong)#ClassName#*#propertyName#;property(nonatomic,assign)#TypeName##propertyName#;///#注释#property(nonatomic,assign)#TypeName##propertyName#;
具体属性
property(nonatomic,strong)UILabel*#XX#Label;///#注释#property(nonatomic,strong)UILabel*#XX#Label;property(nonatomic,copy)NSString*#propertyName#;///#注释#property(nonatomic,copy)NSString*#propertyName#;懒加载
UILabel/UIImageView等的懒加载
-(UILabel*)#yourLabel#{if(!_#yourLabel#){_#yourLabel#=[[UILabelalloc]init];}return_#yourLabel#;}-(UIImageView*)#yourImageView#{if(!_#yourImageView#){_#yourImageView#=[[UIImageViewalloc]init];}return_#yourImageView#;}
NSArray/NSMutableArray有泛型的懒加载
-(NSMutableArray#GenericsName#**)#yourMArray#{if(!_#yourMArray#){_#yourMArray#=[NSMutableArrayarray];}return_#yourMArray#;}
NSArray/NSMutableArray无泛型的懒加载
-(NSMutableArray*)#yourMArray#{if(!_#yourMArray#){_#yourMArray#=[NSMutableArrayarray];}return_#yourMArray#;}方法调用
delegate先判断再执行
Masonry使用
其它(Everyorany,ifyouwant!)代码块的优点
避免重复代码反复敲写,减少不必要的时间浪费(如小实验的实验)
快速演示(详见每年的WWDC)
不常用的方法,可以特殊处理(我一般用来处理个别系统适配)。
统一编码规范
最后
代码块(CodeSnippet)真的是个很好用的东东,平时闲了,可以整理一份适合自己的代码块,然后通过GitHub进行备份。如果不想整理,也可以去GitHub搜一些拿来用,但我真的建议还是自己整理一份。
附:最新整理的CodeSnippets(公司内部统一用)
预览时标签不可点收录于话题#个上一篇下一篇