Xcode 代碼塊、類文件模板

代碼塊

  1. 書寫代碼
@property (nonatomic, copy) NSString *<#name#>;
  1. 選中代碼右鍵鲫构,選擇 Create Code Snipped


  2. 編輯代碼塊信息


Xcode的自帶代碼模板是用一個plist格式xml文件描述的并级,存儲在Xcode的安裝目錄:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets

自定義的代碼塊路徑:
~/Library/Developer/Xcode/UserData/CodeSnippets/

自定義文件頭部注釋

  1. 創(chuàng)建 IDETemplateMacros.plist 文件
  2. 添加宏名稱 FILEHEADER
  3. 添加宏對應(yīng)的值,即自定義的注釋格式
DATE:現(xiàn)在的日期

FILENAME:所在文件的全名

ORGANIZATIONNAME:機構(gòu)名稱,在配置文件中獲取

PACKAGENAME:包名

PRODUCTNAME:應(yīng)用名稱

PROJECTNAME:工程名

TIME:時間

FULLUSERNAME:用戶名吗冤,為當(dāng)前MasOS的用戶賬號名

WORKSPACENAME:工作區(qū)名稱

YEAR:當(dāng)前年份

COPYRIGHT:版權(quán)字符串,由機構(gòu)名稱和創(chuàng)建年份構(gòu)成九府,例如Copyright ? 2019 CY. All rights reserved.
**************************************************************************************
//                                   _(\_/)
//                                 ,((((^`\
//                                ((((  (6 \
//                              ,((((( ,    \
//          ,,,_              ,(((((  /"._  ,`,
//         ((((\\ ,...       ,((((   /    `-.-'
//         )))  ;'    `"'"'""((((   (
//        (((  /            (((      \
//         )) |                      |
//        ((  |        .       '     |
//        ))  \     _ '      `t   ,.')      File name:     ___FILENAME___
//        (   |   y;- -,-""'"-.\   \/
//        )   / ./  ) /         `\  \       Author:        ___FULLUSERNAME___
//           |./   ( (           / /'
//           ||     \\          //'|        Created on:    ___DATE___
//           ||      \\       _//'||
//           ||       ))     |_/  ||        Description:   <#功能描述#>
//           \_\     |_/          ||
//           `'"                  \_\
//                                `'"
//***************************************************************************************

/*
 *
 *   █████?█    ██  ▄████▄   ██ ▄█?       ██████╗ ██╗   ██╗ ██████╗
 * ▓██   ? ██  ▓██??██? ?█   ██▄█?        ██╔══██╗██║   ██║██╔════╝
 * ?████ ?▓██  ?██??▓█    ▄ ▓███▄?        ██████╔╝██║   ██║██║  ███╗
 * ?▓█?  ?▓▓█  ?██??▓▓▄ ▄██?▓██ █▄        ██╔══██╗██║   ██║██║   ██║
 * ??█?   ??█████▓ ? ▓███? ??██? █▄       ██████╔╝╚██████╔╝╚██████╔╝
 *  ? ?   ??▓? ? ? ? ?? ?  ?? ?? ▓?       ╚═════╝  ╚═════╝  ╚═════╝
 *  ?     ???? ? ?   ?  ?   ? ?? ??
 *  ? ?    ??? ? ? ?        ? ?? ?
 *           ?     ? ?      ?  ?
 *           
 *    File name:     ___FILENAME___
 *    Author:        ___FULLUSERNAME___
 *    Created on:    ___DATE___
 *    Description:   <#功能描述#>
 */
  1. 將 .plist 文件放置到特定的目錄
  • 適用于整個工程(個人)
    <ProjectName>.xcodeproj/xcuserdata/[username].xcuserdatad/
  • 適用于整個工程(共享)
    <ProjectName>.xcodeproj/xcshareddata/
  • 適用于整個工作區(qū)(個人)
    <WorkspaceName>.xcworkspace/xcuserdata/[username].xcuserdatad/
  • 適用于整個工作區(qū)(共享)
    <WorkspaceName>.xcworkspace/xcshareddata/
  • 適用于整個Xcode
    ~/Library/Developer/Xcode/UserData/

FILEHEADER宏的系統(tǒng)設(shè)置探究

通過Xcode ? Contents ? Developer ? Platforms ? iPhoneOS.platform ? Developer ? Library ? Xcode ? Templates路徑椎瘟,然后搜索Cocoa Touch Class.xctemplate,以其中的NSObjectObjective-C文件為例


自定義類模板

  1. 在路徑:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates 下創(chuàng)建 Custom 文件夾

  2. 創(chuàng)建 Custom View.xctemplate 文件夾侄旬,從Source文件夾下面的 Cocoa Touch Class.xctemplate 中復(fù)制 TemplateInfo.plist 文件過來進行修改肺蔚。并添加 TemplateIcon.png(5757) 和 TemplateIcon@2x.png(114114)。

  3. 在Options中有Item0-Item3四個配置儡羔,對應(yīng)的是我們創(chuàng)建文件時候的四個選項宣羊,如下圖


修改 TemplateInfo.plist 文件如下璧诵,并刪除了 item3 中 swift 相關(guān)內(nèi)容


  1. 創(chuàng)建 UIViewXIBObjective-C 文件夾,添加 ___FILEBASENAME___.xib 文件仇冯,并修改內(nèi)容
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_1" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="iN0-l3-epB" insetsLayoutMarginsFromSafeArea="NO" customClass="___FILEBASENAME___">
            <rect key="frame" x="0.0" y="0.0" width="300" height="200"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
            <point key="canvasLocation" x="65" y="-200"/>
        </view>
    </objects>
</document>
  1. 添加 ___FILEBASENAME___.h___FILEBASENAME___.m 文件
//___FILEHEADER___

___IMPORTHEADER_cocoaTouchSubclass___

NS_ASSUME_NONNULL_BEGIN

@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___
- (void)configViewWithModel:(id)model;
@end

NS_ASSUME_NONNULL_END
//___FILEHEADER___

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (!self) return nil;
    
    return self;
}

+ (instancetype)loadFromNib {
    NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil];
    if ([nibs count] == 0) {
        return nil;
    }
    
    return nibs.firstObject;
}

- (void)awakeFromNib {
    [super awakeFromNib];
    
}

- (void)layoutSubviews {
    [super layoutSubviews];
    
}

#pragma mark - Action

#pragma mark - Getter && Setter

@end

大功告成V蕖!苛坚!下面提供下 UIViewController 的模板比被。

//___FILEHEADER___

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

#pragma mark - LifeCycle

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self configUI];
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
}

#pragma mark - Config UI

- (void)configUI {
    
}

#pragma mark - Action

#pragma mark - NetWork

#pragma mark - Overwirte

#pragma mark - Public

#pragma mark - Private

#pragma mark - Getter && Setter


@end
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泼舱,隨后出現(xiàn)的幾起案子等缀,更是在濱河造成了極大的恐慌,老刑警劉巖娇昙,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尺迂,死亡現(xiàn)場離奇詭異,居然都是意外死亡冒掌,警方通過查閱死者的電腦和手機噪裕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋渔,“玉大人州疾,你說我怎么就攤上這事』始穑” “怎么了严蓖?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長氧急。 經(jīng)常有香客問我颗胡,道長,這世上最難降的妖魔是什么吩坝? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任毒姨,我火速辦了婚禮,結(jié)果婚禮上钉寝,老公的妹妹穿的比我還像新娘弧呐。我一直安慰自己,他們只是感情好嵌纲,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布俘枫。 她就那樣靜靜地躺著,像睡著了一般逮走。 火紅的嫁衣襯著肌膚如雪鸠蚪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音茅信,去河邊找鬼盾舌。 笑死,一個胖子當(dāng)著我的面吹牛蘸鲸,可吹牛的內(nèi)容都是我干的妖谴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼棚贾,長吁一口氣:“原來是場噩夢啊……” “哼窖维!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妙痹,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤铸史,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怯伊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琳轿,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年耿芹,在試婚紗的時候發(fā)現(xiàn)自己被綠了崭篡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡吧秕,死狀恐怖琉闪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砸彬,我是刑警寧澤颠毙,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站砂碉,受9級特大地震影響蛀蜜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜增蹭,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一滴某、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滋迈,春花似錦霎奢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赔退,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硕旗。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工窗骑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漆枚。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓创译,卻偏偏與公主長得像,于是被迫代替她去往敵國和親墙基。 傳聞我的和親對象是個殘疾皇子软族,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344