一、背景
大多数 创建ViewController时都有一些自己的重复模版代码需要频繁的拷贝,或者利用代码块创建,很麻烦,例如:
#import "TestViewController.h"
#import "<#ViewModelClass#>.h"
@interface TestViewController ()
@property (nonatomic, strong) <#ViewModelClass#> *viewModel;
@end
@implementation TestViewController
#pragma mark - life cycle
- (void)viewDidLoad {
[super viewDidLoad];
[self setupData];
[self setupNavigation];
[self setupView];
[self bindViewModel];
}
#pragma mark - event response
-(void)bindViewModel{
}
#pragma mark - outFunctions
#pragma mark - privateFunctions
#pragma mark - setup data and view
-(void)setupData{
}
-(void)setupView{
}
-(void)setupNavigation{
}
#pragma mark - getters and setters
-(<#ViewModelClass#> *)viewModel{
if (!_viewModel) {
_viewModel = [<#ViewModelClass#> new];
}
return _viewModel;
}
@end
二、创建
1.找到Xcode自己的文件模版
路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates
Xcode自带模版Templates
File Templates 文件模版
————————————
Project Templates 工程模版
其中 File Templatesd/Source/Cocoa Touch Class.xctemplate 是本文需要的模版位置(不同Xcode版本有可能有点不同,不过都是在File Templatesd下找到的对应想要自定义的.xctemplate)
需要复制的文件夹
2. 复制Cocoa Touch Class.xctemplate文件夹
3. 在 ~/Library/Developer/Xcode/ 路径下创建 Templates 文件夹(有的话就不用创建了,我的Xcode10 是没有的)
4. 然后在Templates下创建一个文件夹(文件夹的名字就是以后自定义Xcode模版的名字,我取的是“Custom File Template”)并将复制的Cocoa Touch Class.xctemplate文件夹,粘贴到这里
自定义模版文件夹5.修改想要自定义的类模版
UIViewController模版注意 模版里有有一些宏,不要删除
下面是我的一个修改
//___FILEHEADER___
#import "___FILEBASENAME___.h"
#import "<#ViewModelClass#>.h"
@interface ___FILEBASENAMEASIDENTIFIER___ ()
@property (nonatomic, strong) <#ViewModelClass#> *viewModel;
@end
@implementation ___FILEBASENAMEASIDENTIFIER___
#pragma mark - life cycle
- (void)viewDidLoad {
[super viewDidLoad];
[self setupData];
[self setupNavigation];
[self setupView];
[self bindViewModel];
}
#pragma mark - event response
-(void)bindViewModel{
}
#pragma mark - outFunctions
#pragma mark - privateFunctions
#pragma mark - setup data and view
-(void)setupData{
}
-(void)setupView{
}
-(void)setupNavigation{
}
#pragma mark - getters and setters
-(<#ViewModelClass#> *)viewModel{
if (!_viewModel) {
_viewModel = [<#ViewModelClass#> new];
}
return _viewModel;
}
@end
网友评论