Xcode7 創(chuàng)建自定義模板

自定義模板

之前編寫iOS代碼編程規(guī)范規(guī)定了UIViewController.m的文件布局,不同變量和方法的先后順序:梨撞,但是在實(shí)際使用上政模,新手根本不按要求編寫代碼,所以想到直接編寫一個模板吧。_
編寫模板簡單的方法就是直接拷貝一個系統(tǒng)的模板译柏,然后進(jìn)行自定義的修改置蜀。我已經(jīng)修改好了一個https://github.com/yinanwang1/XcodeTemplate.git ,其中有一個BaseVC.xctemplate就是自定義模板的所有文件奈搜。


開始嘮叨嘮叨一些細(xì)節(jié):

1 模板方案路徑

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

模板

其中的Core Data馋吗、Other、Resource廷雅、Source和User Interface對應(yīng)著
Xcode中New File菜單

BaseVC.xctemplate文件夾放到任意系統(tǒng)模板文件夾中耗美,就會在New File時出現(xiàn)在對應(yīng)的選項中。

把文件copy吧航缀,系統(tǒng)會提醒需要輸入管理員密碼商架。放心輸入,不然沒法下一步操作芥玉。

2. BaseVC.xctemplate介紹

假設(shè)已經(jīng)將BaseVC.xctemplate放入了Source文件夾中蛇摸,查看BaseVC.xctemplate中有
(1)BaseViewControllerObjective-C 文件夾
用來創(chuàng)建.h 和 .m文件。 其中文件夾的命名規(guī)范是[name]+Objective-C. 如果是創(chuàng)建swift修改為swift灿巧。
(2)BaseViewControllerXibObjective-C文件夾
用來創(chuàng)建.h赶袄,.m和.xib文件。其中文件夾的命名規(guī)范是[name]+XibObjective-C. swift類似抠藕。
(3)TemplateIcon圖片
圖片是用來顯示在New File的菜單上的饿肺。任意放一個自己喜歡的圖片,像素138*138即可盾似。
(4)TemplateInfo.plist
配置文件敬辣。下面單獨(dú)講講。

3. ___FILEBASENAME___.h

內(nèi)容為

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

#import "___VARIABLE_cocoaTouchSubclass___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___

@end

里面的參數(shù)在生成h文件時零院,系統(tǒng)會替換了輸入的文件名溉跃。具體都是什么含義,大家可以自行Google了告抄。

4. ___FILEBASENAME___.m

內(nèi)容為

//
//  ___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

按編程規(guī)范編寫的撰茎,大家可以自行修改,New File后將自動生成你修改的內(nèi)容打洼。 有什么異議可以看看iOS代碼編程規(guī)范龄糊。

5. TemplateInfo.plist

TemplateInfo.plist
  • SortOrder 這個是排序的值逆粹,可以設(shè)置在界面中的擺放位置
  • Options中的Item0,Item1绎签,Item2枯饿,Item3 對應(yīng)了


    Options

    第一行到第四行。

  • Item0 沒什么可以修改


    值得說說
  1. 自定義的BaseViewController的類诡必,當(dāng)然可以使用系統(tǒng)或自己定義奢方。
  2. BaseViewController的后綴。選擇后爸舒,自動在Class后面添加ViewController的后綴蟋字。
  3. 是否生成Xib文件,默認(rèn)是ture扭勉。當(dāng)選擇了BaseViewController時鹊奖,可以進(jìn)行checkout,不然不可選涂炎,不生成Xib文件忠聚。

6. 用一用

  1. New File


    新建
  • Next


    Options.png

    命名Test

  • 結(jié)果


    生成

成功。

有啥沒說清楚的唱捣,給我評論两蟀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市震缭,隨后出現(xiàn)的幾起案子赂毯,更是在濱河造成了極大的恐慌,老刑警劉巖拣宰,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件党涕,死亡現(xiàn)場離奇詭異,居然都是意外死亡巡社,警方通過查閱死者的電腦和手機(jī)膛堤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晌该,“玉大人肥荔,你說我怎么就攤上這事∑希” “怎么了次企?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵怯晕,是天一觀的道長潜圃。 經(jīng)常有香客問我,道長舟茶,這世上最難降的妖魔是什么谭期? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任堵第,我火速辦了婚禮,結(jié)果婚禮上隧出,老公的妹妹穿的比我還像新娘踏志。我一直安慰自己,他們只是感情好胀瞪,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布针余。 她就那樣靜靜地躺著,像睡著了一般凄诞。 火紅的嫁衣襯著肌膚如雪圆雁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天帆谍,我揣著相機(jī)與錄音伪朽,去河邊找鬼。 笑死汛蝙,一個胖子當(dāng)著我的面吹牛烈涮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窖剑,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼坚洽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苛吱?” 一聲冷哼從身側(cè)響起酪术,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翠储,沒想到半個月后绘雁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡援所,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年庐舟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片住拭。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡挪略,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滔岳,到底是詐尸還是另有隱情杠娱,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布谱煤,位于F島的核電站摊求,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏刘离。R本人自食惡果不足惜室叉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一睹栖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茧痕,春花似錦野来、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至令野,卻和暖如春搪锣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彩掐。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工构舟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人堵幽。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓狗超,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朴下。 傳聞我的和親對象是個殘疾皇子努咐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 最近寫項目的時候用到了很多UIViewController的子類,所以自定義了個模板希望能快速創(chuàng)建一個規(guī)范且...
    CharlsPrince閱讀 931評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理殴胧,服務(wù)發(fā)現(xiàn)渗稍,斷路器,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • 寫之前先感謝下 @ColeXm 的 偷懶寶典--打造屬于自己的 Xcode 類模板 讓我知道能夠知道還能自定義 X...
    ifelseboyxx閱讀 7,249評論 14 73
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,520評論 25 707
  • 一团滥、為什么要自定義模板 1.節(jié)省重復(fù)代碼手寫時間2.統(tǒng)一規(guī)范代碼竿屹,提高代碼可讀性3.減少手寫代碼,XIB或修改相關(guān)...
    huluo666閱讀 7,916評論 10 49