Xcode7 建立自定義模板

自定義模板
以前編寫 iOS代碼編程規範規定了 UIViewController.m的文件佈局,不一樣變量和方法的前後順序:,可是在實際使用上,新手根本不按要求編寫代碼,因此想到直接編寫一個模板吧。^_^ 編寫模板簡單的方法就是直接拷貝一個系統的模板,而後進行自定義的修改。我已經修改好了一個https://github.com/yinanwang1/XcodeTemplate.git ,其中有一個 BaseVC.xctemplate就是自定義模板的全部文件。


開始嘮叨嘮叨一些細節:git

1 模板方案路徑

系統模板的路徑(Xcode7,8,9)/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates在這個目錄下有 github

模板
其中的Core Data、Other、Resource、Source和User Interface對應着
Xcode中New File菜單
BaseVC.xctemplate文件夾放到任意系統模板文件夾中,就會在New File時出如今對應的選項中。

把文件copy吧,系統會提醒須要輸入管理員密碼。放心輸入,否則無法下一步操做。編程

2. BaseVC.xctemplate介紹

假設已經將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

3. ___FILEBASENAME___.h

內容爲bash

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import "___VARIABLE_cocoaTouchSubclass___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___

@end
複製代碼

裏面的參數在生成h文件時,系統會替換了輸入的文件名。具體都是什麼含義,你們能夠自行Google了。app

4. ___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代碼編程規範佈局

5. TemplateInfo.plist

TemplateInfo.plist

  • SortOrder 這個是排序的值,能夠設置在界面中的擺放位置
  • Options中的Item0,Item1,Item2,Item3 對應了
    Options
    第一行到第四行。
  • Item0 沒什麼能夠修改
    值得說說
  1. 自定義的BaseViewController的類,固然可使用系統或本身定義。
  2. BaseViewController的後綴。選擇後,自動在Class後面添加ViewController的後綴。
  3. 是否生成Xib文件,默認是ture。當選擇了BaseViewController時,能夠進行checkout,否則不可選,不生成Xib文件。

6. 用一用

  1. New File
    新建
  • Next ui

    Options.png
    命名Test

  • 結果 atom

    生成

成功。

有啥沒說清楚的,給我評論。

相關文章
相關標籤/搜索