什么是文件模板:
文件模板就是xcode在项目创建文时的模板,比如创建UIViewController,UITableViewCell文件时,文件自带的内容。
为什么要制作自己的文件模板
规范开发,减少重复工作,比如每次创建
Xcode代码块存放地址UITableViewCell的时候总是不可避免的去新建label,button,imageView,很烦。
如何创建
xcode原本的文件模板
在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source这个地址下Cocoa Touch Class.xctemplate文件夹里有很对Xcode自带的文件模板。
我们观察系统文件模板的特点,在Source文件夹下创建自己文件模板的文件夹,下图就是我自己创建的文件模板
然后将Cocoa Touch Class.xctemplate里的文件模板复制一份到自己的文件夹里。
开始修改
我想修改UIViewController的文件模板,找到对应的文件夹UIViewControllerObjective-C,我想让它继承自BaseViewController,然后在.m文件里划分好代码区域,写入友盟统计代码。
//___FILEHEADER___
___IMPORTHEADER_cocoaTouchSubclass___
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface ___FILEBASENAMEASIDENTIFIER___ : BaseViewController
@end
NS_ASSUME_NONNULL_END
//___FILEHEADER___
#import "___FILEBASENAME___.h"
@interface ___FILEBASENAMEASIDENTIFIER___ ()
@end
@implementation ___FILEBASENAMEASIDENTIFIER___
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
//开始统计
[MobClick beginLogPageView:NSStringFromClass([self class])];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//结束统计
[MobClick endLogPageView:NSStringFromClass([self class])];
}
#pragma mark ---------- layout ----------
-(void)layout{
}
#pragma mark ---------- delegate ----------
#pragma mark ---------- event response ----------
#pragma mark ---------- HTTP ----------
#pragma mark ---------- private method ----------
#pragma mark ---------- getter && setter ----------
@end
下面是对UITableViewCell的修改
//___FILEHEADER___
#import "___FILEBASENAME___.h"
@interface ___FILEBASENAMEASIDENTIFIER___ ()
@property (nonatomic, strong) UIImageView *imgView;
@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UILabel *detailLabel;
@property (nonatomic, strong) UILabel *label1;
@end
@implementation ___FILEBASENAMEASIDENTIFIER___
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
#pragma mark ---------- setter && getter ----------
-(UIImageView *)imgView{
if(_imgView == nil){
_imgView = [UIImageView new];
}
return _imgView;
}
-(UILabel *)titleLabel{
if(_titleLabel == nil){
_titleLabel = [UILabel new];
}
return _titleLabel;
}
-(UILabel *)detailLabel{
if(_detailLabel == nil){
_detailLabel = [UILabel new];
}
return _detailLabel;
}
-(UILabel *)label1{
if(_label1 == nil){
_label1 = [UILabel new];
}
return _label1;
}
@end
修改plist文件
将TemplateInfo.plist里的SortOrder改为0,为了和系统文件区分,可以将文件夹里的TemplateIcon.png图片改成自己喜欢的。
这样这个自定义文件模板就能出现在我们的xcode的面板上了。
按我们平常的方式就可以新建出自己的模板文件啦~
最后
Xcode代码块存放地址
~/Library/Developer/Xcode/UserData/CodeSnippets Xcode
文件模板存放位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source
这个文件需要备份,不然xcode一更新就没了