武装你的Xcode(三)- 代码块Snippets

1、认识 Xcode 代码块

2、创建 Xcode 代码块

当然,代码块功能之所以强大,是因为你可以创建自定义的代码块。
创建代码块的过程:用户拖拽选中文本生成“剪切文本”。看下实际操作就很好理解:

武装你的Xcode(三)- 代码块Snippets_第1张图片

用户将自定义的代码块添加到库里面后,可以双击列表中的块去编辑。


武装你的Xcode(三)- 代码块Snippets_第2张图片
  • Title 标题 - 块的名字(出现在代码补全和代码块库列表中)
  • Summary 简介 - 简单描述下它是干嘛的(只出现在代码块库列表中)
  • Platform 平台 - 限制可访问该代码块的平台。OS X,iOS,或者(“全部”)
  • Language 语言 - 限制可访问该代码块的语言。常见的有 C,Objective-C,C++,或 Objective-C++
  • Completion Shortcut 输入码 - 快捷输入码。常用块的输入码应该非常简练。Xcode 不会警告冲突 / 重复的输入码,所以一定要确保新添加的不要和已有的冲突。
  • Completion Scopes 有效范围 - 限制可访问该代码块的范围。if / else语句的自动补全应该只在方法或者函数的实现中有效。下面这些选项可以任意组合:
    • 1、All 全部
    • 2、Class Implementation 类实现,范围为.m文件,
      @implementation - @end的范围
    • 3、Class Interface Methods 类接口方法,范围为.h文件的方法,@interface - @end的范围,指的是定义的方法
    • 4、Class Interface Variables 类接口变量,范围为.h文件的属性,@interface - @end的范围
    • 5、Code Expression 代码表达式,Method方法的一部分
    • 6、Function or Method 函数或方法,指的是调用的方法,区别于2和3(定义的方法)
    • 7、Preprocessor Directive 预处理指令
    • 8、String or Comment 字符串或注释
    • 9、Top Level 最高层

3、存储地址

~/Library/Developer/Xcode/UserData/CodeSnippets/
目录存放了所有 Xcode 代码段的文件表示

4、占位符

在你使用其他代码块时你可能已经注意到了这些占位符:



在 Xcode 中,占位符使用 <# 和 #>

5、常用代码块(第三方代码块)

  • 你可以在 Xcode-Snippets 找到一些好用的代码块,包括(文件名就是代码块快捷键)
    - tableView数据源方法
    - tableView代理方法
    - 单例
    - init方法

  • 下载此项目XcodeCodeSnippets,把后缀为.codesnippet拖入代码块存储地址,按标题顺序分为几个大类:

    -  动画 Animation
    -  类扩展 Class Extension
    -  Blocks
    -  调试打印 DebugLog   
    -  GCD and queues(Async)
    -  通知 Notifications
    -  日期 Formatting
    -  方法分组 Section Header #pragma 
    -  表格类代理方法 UITableView or UICollectionView
    -  生命周期 LifeCycle
        补充(这个项目比较完整,但是还是有遗漏,需要自己增加)
    -  属性 Property
    -  初始化方法 Initialization
    -  单例
    

方法二:点击运行下图的命令行即可自动导入代码块,同理,点击运行ClearSnippets.command可清楚代码块。

武装你的Xcode(三)- 代码块Snippets_第3张图片
  • 补充
  • 去除NS,UI等前缀,给代码块设置快捷键。
    为了不和苹果已有的冲突,或者避免和苹果已有的混杂在一起,且简单,将前缀(如NS,UI)去除,调用最方便。
    eg:关于所有的通知NSNotification取名为notification,关于所有的调试打印NSLog取名为Log。

  • ** 属性代码块**
    1 Title: Property Assign
    2 Completion Shortcut: @strong
    3 Completion Scopes: All
    4 @property (assign, nonatomic)

  • ** 初始化方法**

     1  Title: Initialization
     2  Completion Shortcut: @strong
     3  Completion Scopes: Class Implementation
     4 
     - (instancetype)init {
     self = [super init];
         if (!self) {      
        }
         return self;
     }
    
     - (instancetype)initWithFrame:(CGRect)frame {
         self = [super initWithFrame:frame];
         if (!self) {
     
         }
         return self;
     }
    

6、同步备份

  • 使用ACCodeSnippetRepositoryPlugin插件
  • 将代码块打包,拷入其他电脑Xcode中

你可能感兴趣的:(武装你的Xcode(三)- 代码块Snippets)