美文网首页
iOS 开发 提升开发效率

iOS 开发 提升开发效率

作者: 小暖风 | 来源:发表于2020-08-10 19:32 被阅读0次

    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 编译

    相关文章

      网友评论

          本文标题:iOS 开发 提升开发效率

          本文链接:https://www.haomeiwen.com/subject/uwzjdktx.html