简洁快捷的代码块能极大地提高开发效率
属性注释 快捷键:xx
/** <#属性注释#> */
多行注释 快捷键:zz
/** <#简要描述#>
* <#详细描述#>
*/
#pragma mark ——- 快捷键:mark-
#pragma mark ——— <#mark#>
#pragma mark — 快捷键:mark
#pragma mark — <#mark#>
weak属性创建 快捷键:weak
/** <#weak属性注释#> */
@property (nonatomic, weak) <#Class#> *<#name#>;
copy属性创建 快捷键:copy
/** <#copy属性注释#> */
@property (nonatomic, copy) NSString *<#name#>;
assign属性创建 快捷键: assign
/** <#assign属性注释#> */
@property (nonatomic, assign) <#Class#> <#name#>;
UIAlertViewController创建
// 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#>];
懒加载
#pragma mark - 懒加载
- (<#type#> *)<#name#> {
if (!_<#name#>) {
_<#name#> = <#statements#>;
}
return _<#name#>;
}
一个页面多个请求
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
@protocol <#LoginViewControllerDelegate#> <NSObject>
@required // 必须实现的方法 默认
@optional // 可选实现的方法
- (void)<#loginViewControllerDidSuccess#>:(<#Class#> *)<#obj#>;
@end
@property(nonatomic, weak) id<<#LoginViewControllerDelegate#>> <#代理属性#>;
代理.m 快捷键:delegate.m
//成功后的回调
if ([self.<#代理属性#> respondsToSelector:@selector(<#代理方法名loginViewControllerDidSuccess#>:)]) {
[self.<#代理属性#> <#代理方法名loginViewControllerDidSuccess#>:<#obj#>];
}
属性block.h 快捷键:blockProperty.h
// <#属性block#>
@property (nonatomic, copy) void(^<#nameBlock#>)(<#Class#> *<#obj#>);
属性block.m 快捷键:blockProperty.m
if (self.<#nameBlock#>) {
self.<#nameBlock#>(<#obj#>);
}
方法block.h 快捷键:blockMethod.h
typedef void(^<#AYHandle#>)(<#Class#> *<#obj#>);
- (void)<#block方法名#>:(<#AYHandle#>)<#xxHandle#>;
方法block.m 快捷键:blockMethod.m
/** 方法block回调 */
@property (nonatomic, copy) <#AYHandle#> <#xxHandle#>;
if (self.<#xxHandle#>) {
self.<#xxHandle#>(<#obj#>);
}
- (void)<#block方法名#>:(<#AYHandle#>)<#xxHandle#> {
self.<#xxHandle#> = <#xxHandle#>;
}
单例 快捷键:single
static HLUserManager *_singleton = nil;
@implementation HLUserManager
+ (instancetype)sharedManager {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_singleton = [[HLUserManager alloc] init];
});
return _singleton;
}