iOS 开发 提升开发效率

1.Xcode文件模板制作

        创建的UIViewController的m文件什么函数也没有,但是viewDidLoad,viewWillAppear,viewDidAppear等系统函数是常用的,还有一些习惯的设置UI的函数,每次都需要敲或者拷贝,重复的无用功;创建的UIView的m文件什么函数也没有,但是init等系统函数是常用的,还有一些习惯的设置UI的函数,每次都需要敲或者拷贝,重复的无用功。

        为什么m文件什么函数也没有,因为Xcode的文件模板就是什么都没有,so,改变它,改成你希望的样子。

        文件模板存放位置:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/iOS/Source。

        操作步骤,以修改`UIViewController`的模板为例,就需要改其中的`UIViewControllerObjective-C`、 `UIViewControllerSwift`、`UIViewControllerXIBObjective-C`、`UIViewControllerXIBSwift`。他们的区别从名字上就能看出来,就是OC与Swift,是否用Xib的区别。不能直接在模板文件夹中修改,需要将要修改的文件拷贝出来。我们以OC并且不用Xib为例,打开UIViewControllerObjective-C中的`___FILEBASENAME___.m`文件:

```objective-c

//___FILEHEADER___

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/

@end

```

一些宏的定义:

宏名 | 意义 

 ------------ | ------------- 

 `___FILENAME___`  | 文件名包括后缀

 `___PROJECTNAME___` | 工程名

 `___FULLUSERNAME___` | 用户的名字

 `___DATE___`| 当前日期,年/月/日

 `___COPYRIGHT___` | 版权

 `___FILEBASENAME___`|不带后缀的文件名

 `___FILEBASENAMEASIDENTIFIER___` | 不带后缀的文件。

修改后

```objectivec

//

//  ___FILENAME___

//  ___PROJECTNAME___

//

//  Created by ___FULLUSERNAME___ on ___DATE___.

//  ___COPYRIGHT___

//  Description:

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

#pragma mark  ----  生命周期函数

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

}

- (void)dealloc {

}

#pragma mark  ----  代理函数

#pragma mark  ----  自定义函数

@end

```

然后把这个文件去替换原来的文件。替换成功后新建一个控制器,就会是我们自定义的结构了,如果没生效的话,可以重启下Xcode。

2.代码块

        写代码时好多代码是重复的写的,属性的声明,对象的懒加载,系统类的代理,每次都是拷贝,改名,改改熟悉,改改实现,比较浪费时间。

        有时候一些固定代码,譬如if语句,dispatch_once_t代码段,你只需要输入几个字符,敲一下回车,一段代码就有了,这就是系统的代码块。我们可以添加自定义代码块,实现同样的效果。

        步骤:鼠标选中你要设置成代码块的代码,右键,点Create Code Snippet,输入说明。Language表示语言,Platform表示平台,Completion表示标识,Availability表示可用位置。设置完成后,点击Done就完成了。使用时,输入标识就可键入你设置的代码块。

        同时,点击Xcode右上角+,你可以去编辑,修改,删除代码块。

        创建代码块时,设置Availability(适用范围)需注意:

        All Scopes 全部

        Class Implementation 类的实现,就是.m文件里,@implementation @end区域,非函数体内,函数和懒加载实现要使用这种方式

        Class Interface Methods 类接口方法,就是.h文件和.m文件的接口区,@interface @end区域,懒加载声明使用这种方式

        Class Interface Variables 类接口变量

        Code Expression 代码表达式 在函数内部使用,插入代码块的话使用

        Function or method 函数或方法

        Preprocessor Directive 预处理器指令

        String or Comment 字符串或评论

        Top Level 顶级  

3.宏定义文件

        创建一个宏定义的文件,方便管理常用的方法或者变量名,比如获取屏幕宽高,导航高度,底部安全区高度等。

4.常用的Xcode快捷键

Cmd + Shift + F 在工程中查找 可以全工程查找或者替换(这个在项目开发中经常用到,前提是注释的好,命名规范,这样就能全局快速找到想要的方法)

Cmd + Shift + O 快速查找类(类名命名规范并且了解自己的习惯就能很快的找到)

Control + 6 列出当前文件中所有的方法,通过pragama进行区分可以快速的找到自己想要的方法

Cmd + Enter 在.h和.m之间切换

Cmd + 0 隐藏左边的导航(Nabigator)区

Cmd + Opt + 0 隐藏右边的工具

Cmd + Ctrl + Left/Right 到上/下一次编辑的位置,在两个编辑位置跳转的时候超级方便的,总之比用鼠标点那两个三角号要好吧

选中一段代码Cmd + Shift + [ / ] 移动这段选中代码所在的行数,这样就不需要剪切和拷贝啦

Cmd + 点击 查看该方法的实现

Opt + 点击 查看该方法的文档

Cmd + R 运行工程

Cmd + B 编译

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351