開始嘮叨嘮叨一些細節:git
系統模板的路徑(Xcode7,8,9)/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates在這個目錄下有 github
其中的Core Data、Other、Resource、Source和User Interface對應着 將 BaseVC.xctemplate文件夾放到任意系統模板文件夾中,就會在New File時出如今對應的選項中。把文件copy吧,系統會提醒須要輸入管理員密碼。放心輸入,否則無法下一步操做。編程
假設已經將BaseVC.xctemplate放入了Source文件夾中,查看BaseVC.xctemplate中有 (1)BaseViewControllerObjective-C 文件夾 用來建立.h 和 .m文件。 其中文件夾的命名規範是[name]+Objective-C. 若是是建立swift修改成swift。 (2)BaseViewControllerXibObjective-C文件夾 用來建立.h,.m和.xib文件。其中文件夾的命名規範是[name]+XibObjective-C. swift相似。 (3)TemplateIcon圖片 圖片是用來顯示在New File的菜單上的。任意放一個本身喜歡的圖片,像素138*138便可。 (4)TemplateInfo.plist 配置文件。下面單獨講講。swift
___FILEBASENAME___.h
內容爲bash
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//
#import "___VARIABLE_cocoaTouchSubclass___.h"
@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___
@end
複製代碼
裏面的參數在生成h文件時,系統會替換了輸入的文件名。具體都是什麼含義,你們能夠自行Google了。app
___FILEBASENAME___.m
內容爲ide
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//
#import "___FILEBASENAME___.h"
// Controllers
// Model
// Views
//#define <#macro#> <#value#>
@interface ___FILEBASENAMEASIDENTIFIER___ ()
//@property (nonatomic, strong) <#type#> *<#name#>
@end
@implementation ___FILEBASENAMEASIDENTIFIER___
#pragma mark - View Controller LifeCyle
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self initialNavigationBar];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - Override
#pragma mark - Initial Methods
- (void)initialNavigationBar
{
// self.navigationItem.title = <#title#>;
}
#pragma mark - Target Methods
#pragma mark - Notification Methods
#pragma mark - KVO Methods
#pragma mark - UITableViewDelegate, UITableViewDataSource
#pragma mark - Privater Methods
#pragma mark - Setter Getter Methods
@end
複製代碼
按編程規範編寫的,你們能夠自行修改,New File後將自動生成你修改的內容。 有什麼異議能夠看看iOS代碼編程規範。佈局
Next ui
命名Test結果 atom
成功。
有啥沒說清楚的,給我評論。