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 编译
网友评论