小实验
|
|
上面的代码,如果是你,你平时怎么在 Xcode
中敲写的呢?
第一种:从左到右依次敲写
第二种:采用Code Snippet
通过我们的肉眼观察,可以很容易的发现:第二种明显更快。
眼见为虚,那好,我们用数据来说话(控制变量法 + 录屏):
唯一不可控的是我在敲代码时的反应,暂且忽略不计。
第一种用时 14秒
,第二种用时及 3秒
,可以看出,差别还是很大的(说实在的,我自己之前也一直觉得第二种效率更高,但是没想过如此之高)。
代码块(Code Snippet
)
代码块(
Code Snippet
),顾名思义,就是一个代码片段。
CodeSnippets
的文件路径:
|
|
如何自定义代码块
创建代码块
注意下图圈中,对应的颜色(左边是敲代码时展示的效果,右边是代码块的配置)。
这里注意要选择
Objective-C
(默认是Objective-C++
),否则扩展(extension
)中无效。
系统提供的代码块
dispatch_once
、dispatch_after
|
|
for
、for...in...
|
|
自定义的代码块
格式:<#注释#>
属性
-
关键字属性
1 2 3 4 5 6 7 8 9
@property (nonatomic, strong) <#ClassName#> *<#propertyName#>; /// <#注释#> @property (nonatomic, strong) <#ClassName#> *<#propertyName#>; @property (nonatomic, assign) <#TypeName#> <#propertyName#>; /// <#注释#> @property (nonatomic, assign) <#TypeName#> <#propertyName#>;
-
具体属性
1 2 3 4 5 6 7 8 9
@property (nonatomic, strong) UILabel *<#XX#>Label; /// <#注释#> @property (nonatomic, strong) UILabel *<#XX#>Label; @property (nonatomic, copy) NSString *<#propertyName#>; /// <#注释#> @property (nonatomic, copy) NSString *<#propertyName#>;
懒加载
-
UILabel
/UIImageView
等的懒加载1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- (UILabel *)<#yourLabel#> { if (!_<#yourLabel#>) { _<#yourLabel#> = [[UILabel alloc] init]; } return _<#yourLabel#>; } - (UIImageView *)<#yourImageView#> { if (!_<#yourImageView#>) { _<#yourImageView#> = [[UIImageView alloc] init]; } return _<#yourImageView#>; }
-
NSArray
/NSMutableArray
有泛型的懒加载1 2 3 4 5 6 7
- (NSMutableArray<<#GenericsName#> *> *)<#yourMArray#> { if (!_<#yourMArray#>) { _<#yourMArray#> = [NSMutableArray array]; } return _<#yourMArray#>; }
-
NSArray
/NSMutableArray
无泛型的懒加载1 2 3 4 5 6 7
- (NSMutableArray *)<#yourMArray#> { if (!_<#yourMArray#>) { _<#yourMArray#> = [NSMutableArray array]; } return _<#yourMArray#>; }
方法调用
-
delegate
先判断再执行 -
Masonry
使用
其它(Every or any, if you want!)
代码块的优点
- 避免重复代码反复敲写,减少不必要的时间浪费 (
如小实验的实验
) - 快速演示(
详见每年的WWDC
) - 不常用的方法,可以特殊处理(
我一般用来处理个别系统适配
)。 - 统一编码规范
最后
代码块(Code Snippet
)真的是个很好用的东东,平时闲了,可以整理一份适合自己的代码块,然后通过GitHub
/gitee
进行备份。如果不想整理,也可以去GitHub
/gitee
搜一些拿来用,但我真的建议还是自己整理一份。
为了方便后续修改(新增、删除)后依然能及时同步,我这里备份在gitee
上ap_code_snippets_oc,同时,我也加入了install.sh
,方便终端快速替换:
|
|
替换完,记得要重启Xcode
。