当前位置:
首页
>
编程社区
>
Swift
> Swift - 自定义可重用的代码片段(Code Snippets)

Swift - 自定义可重用的代码片段(Code Snippets)

    在开发过程中,我们常常会用到一些相似的代码。对于这些相同的内容,如果我们每次都要手动书写,无形中就增加了工作量。
    而借助 Xcode Code Snippets 功能,我们可以将一些常用代码保存起来,重复使用。通过快捷方式实现代码的自动填充,从而提高编程效率。

一、基本用法

1,新增代码片段

(1)这里以经常使用消息提示框(AlertController)为例,首先书写如下代码:
注意<##> 表示占位,在 ## 之间可以输入提示文字。
let alertController = UIAlertController(title: <#title#>,
                                        message: <#message#>, preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let okAction = UIAlertAction(title: "好的", style: .default, handler: {
    action in
    print("点击了确定")
})
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)

(2)使用鼠标选中上述代码片段:

(3)按下鼠标右键,选择“Create Code Snippet”菜单项:

(4)在弹出的对话框中填写相关信息:
  • Title:标题。 
  • Summary:描述文字。 
  • Platform:可以使用的平台(如 iOS)。 
  • Language:可以在哪些语言中使用(如 Objective-C)。 
  • Completion Shortcut:呼出该代码片段的快捷键(以字母开头,支持少数符号,如 @)。 
  • Completion Scopes:作用范围,一般写在正确的位置拖动即可,Xcode 会自行选择好。

2,使用代码片段

(1)一种方式是直接从 Code Snippets 面板中拖拽需要的代码块到代码中来:
  • 面板可以点击界面右上角的打括号按钮打开。
  • 也可以使用 Command + Shift + L 快捷键呼出。

(2)更常用的做法是在代码中输入代码片段对应的快捷键来将其呼出:

3,修改代码片段

Code Snippets 面板中,点击需要修改的代码片段,在左侧的弹出框中直接修改即可。

4,删除代码片段

Code Snippets 面板中,选中需要删除的代码片段,按下 delete 键即可。

二、代码片段的备份

(1)默认情况下,Xcode 中的 Code Snippets 存放在下面的目录中:
~/Library/Developer/Xcode/UserData/CodeSnippets

(2)比如我这里有两个自定义的代码片段,可以将它们备份起来。当然也可以将其直接拷出来放在不同的电脑上使用。

附:常用的代码片段

下面分享一些在项目开发中经常使用到的代码片段,供大家参考使用。

1,创建一个主线程同步队列

  • 快捷键:gcdmain
DispatchQueue.main.sync {
    <#code#>
}

2,创建一个全局同步队列

  • 快捷键:gcdglobal
DispatchQueue.global(qos: .default).sync {
    <#code#>
}

3,自定义通知的注册响应

  • 快捷键:notificationadd
let notificationName = Notification.Name(rawValue: <#rawValue#>)
NotificationCenter.default.addObserver(self,
                                       selector: <#selector#>,
                                       name: notificationName, object: nil)

4,自定义通知的发送

  • 快捷键:notificationpost
let notificationName = Notification.Name(rawValue: <#rawValue#>)
NotificationCenter.default.post(name: notificationName, object: self,
                                userInfo: <#userInfo#>)

5,单例模式

  • 快捷键:sharedInstance
private static let _sharedInstance = <#class#>()

class func getSharedInstance() -> <#class#> {
    return _sharedInstance
}

private init() {} // 私有化init方法

6,代码的延迟执行

  • 快捷键:delay
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + <#delayTime#>) {
    <#code#>
}

7,表格初始化

  • 快捷键:tableInit
let tableView = UITableView(frame:self.view.frame, style:.plain)
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self,
                         forCellReuseIdentifier: "SwiftCell")
self.view.addSubview(tableView)

8,表格代理方法初始化

  • 快捷键:tableDelegate
//返回表格分区数量
func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

//返回表格行数
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 10
}

//创建各单元显示内容(创建参数indexPath指定的单元)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
    -> UITableViewCell {
        //为了提供表格显示性能,已创建完成的单元需重复使用
        let identify:String = "SwiftCell"
        //同一形式的单元格重复使用,在声明时已注册
        let cell = tableView.dequeueReusableCell(
            withIdentifier: identify, for: indexPath) as UITableViewCell
        cell.accessoryType = .disclosureIndicator
        cell.textLabel?.text = "hangge.com"
        return cell
}

9,按钮初始化

  • 快捷键:buttonInit
let button = UIButton(type:.system)
button.frame = CGRect(x:10, y:150, width:100, height:30)
button.setTitle("按钮", for:.normal)
button.addTarget(self, action:#selector(tapped(_:)), for:.touchUpInside)
self.view.addSubview(button)

@objc func tapped(_ button:UIButton){
}
评论1
  • 1楼
    2018-09-21 17:18
    Paul

    Xcode 10 Library的位置改到了上面,找了半天.

    站长回复

    谢谢提醒,之前写这篇文章的时候我还没升级到10。文章内容现已更新。

文章类别

本类相关

  • Swift - 炫酷放射弹出按钮菜单(改造自AwesomeMenu)
  • Swift - 使用UIView给页面添加4×4方格
  • Swift - RxSwift的使用详解55(一个用户注册样例2:显示网络请求活动指示器)
  • Swift - 第三方图表库Charts使用详解8(折线图7:事件响应、MarkerView标签)
  • Swift - 输入框抖动效果的实现(扩展UIView、支持所有UI组件)
  • Swift - 在表格头部添加一个带范围选择(scope bar)的搜索栏
  • Swift - 使用Segmented Control进行多个视图View的切换
  • Swift - 类的计算属性(使用get和set来间接获取/改变其他属性的值)
  • Swift - 字体图标的使用及样例(使用Font Awesome字体库,非图片)
  • Swift - 活动器CMMotionActivityManager的使用(获取当前的运动状态)

玻璃钢生产厂家郑州铸造玻璃钢卡通雕塑加工东营玻璃钢仿铜雕塑定制供应张掖玻璃钢植物雕塑制作设计玻璃钢雕塑需要多少钱商场内美陈图片自己怎么制作玻璃钢花盆模具酒泉哪有玻璃钢雕塑哈尔滨玻璃钢传统人物雕塑遵义商场美陈搭建开一家玻璃钢雕塑需要多少钱商场关于酒水的美陈该怎样做福州玻璃钢雕塑批发价格安徽玻璃钢花盆造型南宁动物玻璃钢雕塑制作岳阳市玻璃钢雕塑玻璃钢人物雕塑厂商出售玻璃钢雕塑的利弊商场美陈公司推荐玻璃钢与雕塑商场玻璃钢雕塑设计厂家伊春校园玻璃钢雕塑公司绍州玻璃钢雕塑雕塑玻璃钢还是石膏贵阳大型玻璃钢雕塑多少钱济源春节商场美陈武威动物玻璃钢雕塑安装玻璃钢雕塑怎么清洗平舆玻璃钢雕塑设计商场2020美陈布置评价高的玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化