zoukankan      html  css  js  c++  java
  • Xcode开发技巧—— Code Snippets

    【属性说明】

    • 1.Title:Code Snippets的标题;
    • 2.Summary:Code Snippets的描述文字;
    • 3.Platform:可以使用Code Snippets的平台,有IOS/OS X/All三个选项
    • 4.Language:可以在哪些语言中使用该Code Snippets
    • 5.Completion Shortcut:Code Snippets的快捷方式,比如本文第二部分编写switch代码段用到的sw,在这里,把属性设置的快捷方式设为pc
    • 6.Completion Scopes:可以在哪些文件中使用当前Code Snippets,比如全部位置,头文件中等,当然可以添加多个支持的位置。
    • 7.最后的一个大得空白区域是对Code Snippets的效果预览。

    一切设置完成以后,点击该菜单右下角的Done按钮,新建工作就结束了。

     
    1. #pragma mark - UIViewController overrides 
    通过pragma mark,可以让代码看起来既整洁又有组织。虽然这很重要,但是会带来额外的输入操作和时间。此时,我们可以使用code snippets。
     
    通过code snippets,我们可以创建一些可重用的代码块,并且在任何需要的地方很容易的就可以使用这些代码块。这可以节省输入需要的操作和时间。并且,一旦你学会使用code snippets,会发现你可以创建并扩充自己的code snippet library。
     
    创建一个code snippet非常简单。首先,打开Xcode并在utilities panel中选择code snippet library。
    上图中,可以看到在code snippet library中已经有一些数据了。
     
    接着,输入希望创建的code snippet。在这里,我为pragma mark创建一个code snippet。如下图所示,在代码编辑器中输入 “#pragma mark – UIViewController overrides”。
    选中代码块,如下图所示:
    然后单击并按住代码块,知道文本光标变为箭头光标。接着将代码块拖放到code snippet library中,然后松开鼠标。如下图所示
    此时会弹出一个popover,通过该popover可以对新的code snippet进行编辑,如下图所示。
    首先,是定snippet的名字。这里我指定为“Pragma Mark”
    然后,指定该snippet的completion shortcut(可选项)。这里我指定为“pm”。这样设置以后,在Xcode的代码编辑器中只需要输入快捷方式(pm),就能简单的将这个snippet添加到代码中。非常有用!
    接着,可以看到在上面的示例中,pragma mark的标题是“UIViewController overrides”,不过我们是希望对其修改一下,以能够很容易的输入任意标题。
     
    我们可以简单的将code snippet包含的文本内容修改为“#pragma mark – “即可。不过,这里还有更好的一个办法——将文本块封装到“<#” 和 “#>”中间,这样code snippet将指出我们可以插入自定义文本的完整范围。
     
    下面,将“UIViewController overrides”替换为“<#Title#>”。
    注意,completion scopes字段在这里并没有做修改,通过该字段可以指定completion shortcut的有效范围。
     
    最后,点击edit按钮,以完成snippet的编辑。之后可以在这个popover画面中看到最终结果的一个预览效果。
    然后点击popover中的done按钮。下面,你可以将我们在代码编辑器中为创建snippet而写入的文本行删除掉。
     
    现在来试用一下刚刚创建的snippet!有两种方法。第一种是在code snippet library中找到snippet,然后用鼠标将其拖拽到代码编辑器中…
    ...然后松开鼠标。
    一旦将snippet拖放到代码编辑器之后,就可以通过点击键盘上的tab键在不同的completion字段间移动焦点。
    第二种方法是在代码编辑器里简单的输入completion shortcut中设置的内容即可。我们这里是“pm”。
    然后点击键盘中的return键,就可以将snippet插入到代码编辑器中。
    很简单吧!现在你已经知道如何创建自己的snippet了,你将发现这非常的有用。任何时候,你都遇到重复输入的相同代码块,都可以考虑将其添加到你的code snippets library中。
     
    下面是我经常使用到的一些snippet:
     
    1. Title: Animation Block 
    2. Completion Shortcut: ab 
    3. Completion Scopes: Function or Method 
    4.   
    5. void (^<#Title#>)(void) = ^{ }; 
     
    1. Title: Animation Completion Block 
    2. Completion Shortcut: acb 
    3. Completion Scopes: Function or Method 
    4.   
    5. void (^<#Title#>)(BOOL) = ^(BOOL finished) { }; 
    1. Title: Notification Add 
    2. Completion Shortcut: na 
    3. Completion Scopes: Function or Method 
    4.   
    5. [[NSNotificationCenter defaultCenter] addObserver:<#Observer#> selector:<#Selector#> name:<#Name#> object:<#Object#>]; 
    1. Title: Notification Remove 
    2. Completion Shortcut: nr 
    3. Completion Scopes: Function or Method 
    4.   
    5. [[NSNotificationCenter defaultCenter] removeObserver:<#Observer#> name:<#Name#> object:<#Object#>]; 
    1. Title: NSLog 
    2. Completion Shortcut: log 
    3. Completion Scopes: Function or Method 
    4.   
    5. NSLog(@"<#Log#>"); 
    1. Title: Private Interface 
    2. Completion Shortcut: pi 
    3. Completion Scopes: Top Level 
    4.   
    5. @interface <#Title#> () 
    6.   
    7. @end 
    1. Title: Property Assign 
    2. Completion Shortcut: pa 
    3. Completion Scopes: All 
    4.   
    5. @property (assign, nonatomic) 
    1. Title: Property Strong 
    2. Completion Shortcut: ps 
    3. Completion Scopes: All 
    4.   
    5. @property (strong, nonatomic) 
    1. Title: Property Unsafe Unretained 
    2. Completion Shortcut: pu 
    3. Completion Scopes: All 
    4.   
    5. @property (unsafe_unretained, nonatomic) 
  • 相关阅读:
    .net core 3.1 使用Redis缓存
    JavaSE 高级 第11节 缓冲输入输出字节流
    JavaSE 高级 第10节 字节数组输出流ByteArrayOutputStream
    JavaSE 高级 第09节 字节数组输入流ByteArrayInputStream
    JavaSE 高级 第08节 文件输出流FileOutputStream
    JavaSE 高级 第07节 文件输入流FileInputStream
    JavaSE 高级 第06节 初识I、O流
    JavaSE 高级 第05节 日期类与格式化
    JavaSE 高级 第04节 StringBuffer类
    JavaSE 高级 第03节 Math类与猜数字游戏
  • 原文地址:https://www.cnblogs.com/ChrisYu/p/4684834.html
Copyright © 2011-2022 走看看