iOSer如何化身钢铁侠,打造自己的代码军队

541 阅读5分钟

作为一名开发人员,我们可以想象自己是军队首领,而代码就是我们的军队,钢铁侠可以有自己的钢铁军团,我们也可以拥有代码军队,当然前提是我们掌握了如何创建自己的模板代码😊😊😊。

模板代码不仅可以大大的提高我们的开发效率,而且能统一团队代码风格,不易写出bug,尤其是TableView,CollectionView那一大堆的代理,我们不用一遍一遍的去敲了,当然我们也可以自定义一些自己项目中的代码模板,一键搭建Viewcontroller。

下面我具体介绍如何打造自己的代码军队。 变身钢铁侠,你们准备好了吗?😂😂😂

下面这段代码,我们工程中应该会出现无数次,难道每次我们都要输一遍吗?尤其是cell的初始化方法,dequeueReusableCell,是不是有人总是记不住,有时候忘了还要去其他地方copy过来再改(这种挫事我也没少干😂😂😂),但如果我们把这一段代码定义为代码块,就可以一键输入了。

extension ViewController: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: String.init(describing: CustomCell.self), for: indexPath) as! CustomCell
        return cell
    }
}

选中想要存为代码块的那段代码,点击右键,选择Create Code Snippet,

那个Completion是设置代码块的对应名,类似于原生的代码联想,可以做到输入tableviewDelegate,会出现代码联想,回车之后就直接输入完整的代码块了。

到这里还有一个问题,我们的代码块是固定不变的,比如样例代码中有CustomCell,这个应该要是可变的,要类似于原生接口那种可填充的,不然我们不是每次还要再去改吗?那我们可以做到吗?是可以的。很简单,回到刚开始需要设置代码块的地方,在你需要设置可变代码处用<##>包裹,比如<#CustomCell#>,输入的时候有个小技巧,右边那个#号最后写,等CustomCell填完再写,不然你会包裹一块空气😅😅😅,(别问我为啥提这一嘴,因为我踩过雷,一开始写了几遍都没写出来),写完你就会发现,那一块成高亮显示,并且可输入。

现在我们就可以一键输入完美的Tableview代理了,就跟写一个变量那么简单。输入table联想已经出来了,直接回车上面的代码就写完了。

打造代码军队第一步完成!!!想象空间就留给大家了,把你们不想写的代码都放进去吧,基本具有复写可能的放进去都有意义。打造代码军队第二步开始。

有时候光有代码块还不够方便,有可能我整个Viewcontroller都想一键打出来,比如团队架构已经稳定了,Viewcontroller中可能有一些通用的代码,但又不能抽离,这种代码我也不想写了,举个例子,这几个方法应该是比较常见的,几乎每次创建一个ViewController,这些方法都要写一遍,那我不想写,可不可以一键创建一个自带这些方法的Viewcontroller呢?就像平常那样创建一个ViewController,但自动给我带上了这些方法?来,跟上。

前往文件夹

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Touch Class.xctemplate

我们随便点击一个进去看看,比如UIViewControllerSwift,打开来看一下。

有没有一种似曾相识的感觉?😀😀😀这不就是原生的UIViewController模板吗?那你可能会想,我可以在这里肆意修改啦,马上打造我自己的专属Viewcontroller,但是万一你想用回原生的ViewController呢?系统自带文件最好不要乱改,我们新建一个再改,那我们新建在哪里呢。。。🙄🙄🙄

我们cmd+n新建文件的时候,有注意过最上面那一行字吗?Choose a template for your new file,为我们的新文件创建一个模板,再来看下面的title,Source、User Interface、Apple Watch、Resource, 这些title跟我们刚刚前往的目录中的File Templates不是如出一辙吗?那是不是代表我们可以加一个自己自定义的?

首先我们看文件名后缀,带.xctemplate的才会在模板中显示,然后每个这种文件夹里面都包含TemplateIcon.png,TemplateInfo.plist,这些似乎好像有某种关联,先试试,首先自定义Custom Templates文件夹放在Templates目录下,然后把Cocoa Touch Class.xctemplate一整个文件夹先copy过来。

做好之后,重启XCode,cmd+n,我们可以看到确实有一个自定义模板了,那我们可以修改里面的内容了,打开刚刚想要编辑的文件,发现不能编辑。这是因为它所在的文件夹让它无法编辑,我们把它复制到桌面就可以编辑了,编辑完可以替换原文件。

最后创建自定义的ViewController,效果如下图:

😋😋😋真香,这样我们就可以自定义模板了,广阔天空任你遨游。.xctemplate文件夹下一定要有图片和plist文件,图片后缀好像无所谓,只要是图片文件即可,但是文件名TemplateIcon不能变,plist文件基本不需要改,我后来把文件放在Application下面,发现更好看一点,而且就在最上面,看个人习惯。

最后,这些文件在XCode更新之后会消失的,所以我们可以写一个脚本,这样更新之后,跑一下脚本就可以了。

脚本代码如下,打开终端,cd到该目录下,直接把脚本拖进终端,输入电脑密码就行了。

#!/bin/bash

sudo cp -R Custom\ VC.xctemplate /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application/

sudo cp -R Custom\ View.xctemplate /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application/

以上学会了之后,打造自己的代码军队指日可待!!!看完点个赞再走呗😀😀😀