Fork me on GitHub
An Guoli's Blog

iOS常用代码块&注释规范

iOS常用代码块&注释规范

简洁快捷的代码块能极大地提高开发效率

Xcode自带的GDC代码块

属性注释 快捷键:xx

1
/** <#属性注释#> */

多行注释 快捷键:zz

1
2
3
/** <#简要描述#>
* <#详细描述#>
*/

#pragma mark ——- 快捷键:mark-

1
#pragma mark ——— <#mark#>

#pragma mark — 快捷键:mark

1
#pragma mark — <#mark#>

weak属性创建 快捷键:weak

1
2
/** <#weak属性注释#> */
@property (nonatomic, weak) <#Class#> *<#name#>;

copy属性创建 快捷键:copy

1
2
/** <#copy属性注释#> */
@property (nonatomic, copy) NSString *<#name#>;

assign属性创建 快捷键: assign

1
2
/** <#assign属性注释#> */
@property (nonatomic, assign) <#Class#> <#name#>;

UIAlertViewController创建

1
2
3
4
5
// UIAlertViewController(弹框视图)
UIAlertController *<#alert#> = [UIAlertController alertControllerWithTitle:<#title#> message:<#message#> preferredStyle:<#UIAlertControllerStyle#>];
UIAlertAction *<#action#> = [UIAlertAction actionWithTitle:<#@"确定"#> style:<#UIAlertActionStyle#> handler:<#^(UIAlertAction * _Nonnull action)handler#>];
[alert addAction:<#action#>];
[self presentViewController:<#alert#> animated:<#(BOOL)#> completion:<#^(void)completion#>];

懒加载

1
2
3
4
5
6
7
#pragma mark - 懒加载
- (<#type#> *)<#name#> {
if (!_<#name#>) {
_<#name#> = <#statements#>;
}
return _<#name#>;
}

一个页面多个请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dispatch_group_t group = dispatch_group_create();
dispatch_group_enter(group);
[^{
dispatch_group_leave(group);
}];
dispatch_group_enter(group);
[^{
dispatch_group_leave(group);
}];
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
});

代理.h 快捷键:delegate.h

1
2
3
4
5
6
7
8
9
10
@protocol <#LoginViewControllerDelegate#> <NSObject>
@required // 必须实现的方法 默认
@optional // 可选实现的方法
- (void)<#loginViewControllerDidSuccess#>:(<#Class#> *)<#obj#>;
@end
@property(nonatomic, weak) id<<#LoginViewControllerDelegate#>> <#代理属性#>;

代理.m 快捷键:delegate.m

1
2
3
4
//成功后的回调
if ([self.<#代理属性#> respondsToSelector:@selector(<#代理方法名loginViewControllerDidSuccess#>:)]) {
[self.<#代理属性#> <#代理方法名loginViewControllerDidSuccess#>:<#obj#>];
}

属性block.h 快捷键:blockProperty.h

1
2
// <#属性block#>
@property (nonatomic, copy) void(^<#nameBlock#>)(<#Class#> *<#obj#>);

属性block.m 快捷键:blockProperty.m

1
2
3
if (self.<#nameBlock#>) {
self.<#nameBlock#>(<#obj#>);
}

方法block.h 快捷键:blockMethod.h

1
2
3
typedef void(^<#AYHandle#>)(<#Class#> *<#obj#>);
- (void)<#block方法名#>:(<#AYHandle#>)<#xxHandle#>;

方法block.m 快捷键:blockMethod.m

1
2
3
4
5
6
7
8
9
10
/** 方法block回调 */
@property (nonatomic, copy) <#AYHandle#> <#xxHandle#>;
if (self.<#xxHandle#>) {
self.<#xxHandle#>(<#obj#>);
}
- (void)<#block方法名#>:(<#AYHandle#>)<#xxHandle#> {
self.<#xxHandle#> = <#xxHandle#>;
}

单例 快捷键:single

1
2
3
4
5
6
7
8
9
10
11
12
static HLUserManager *_singleton = nil;
@implementation HLUserManager
+ (instancetype)sharedManager {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_singleton = [[HLUserManager alloc] init];
});
return _singleton;
}