Xcode 常用代码块

在Xcode10正式发布之后,原先位于编辑器右下角的代码块标识被放到右上角的状态栏里,点击 {}按钮之后会将所有的代码块弹出.

{}按钮.png

添加步骤

  • 例如,我们想创建一个生成如下的代码块
/** <#注释#> */
@property (nonatomic,strong) <#Class#> *<#object#>;
  • 首先,我们需要选中这句代码,然后右键 --> Create Code Snippet 这时系统就会自动生成一个代码块,如下入所示

  • {} 按钮 .png
  • 然后,我们点击 {} 按钮 弹出代码块选择框,并将鼠标放置于刚才生成的代码块上,就会出现编辑框,这时我们就可以自定义代码块的 名称 和 快捷键,如下入所示

  • {} 按钮 .png

图中从上到下的含义依次是:

标题 含义
Title 代码片段的标题
Summary 代码片段的描述文字
Platform 可以使用代码片段的平台,有IOS/OS X/All三个选项
Language 可以在哪些语言中使用该代码片段
Completion Shortcut 代码片段的快捷方式,例:copy
Completion Scopes 可以在哪些文件中使用当前代码片段,比如全部位置,头文件中等,当然可以添加多个支持的位置。
最后的一个大得空白区域 对代码片段的效果预览。

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

常用的属性

  1. assign
/** <#注释#> */
@property(nonatomic, assign) <#type#>;
  1. strong
/** <#注释#> */
@property (nonatomic,strong) <#Class#> *<#object#>;
  1. weak
/** <#注释#> */
@property(nonatomic,weak) <#class#> *<#name#>;
  1. copy
/** <#注释#> */
@property (nonatomic,copy) <#Class#> *<#object#>;
  1. block
/** <#注释#> */
@property(nonatomic,copy) <#MyBlock#> <#blockName#>;
  1. delegate
/** <#注释#> */
@property (nonatomic,weak) id<<#protocol#>> <#delegate#>;

GCD相关

  1. OnceGCD
+ (instancetype)shareInstance{
    
    static dispatch_once_t onceToken;
    static id instance = nil;
    dispatch_once(&onceToken, ^{
        
        <#code to be executed once#>
        
    });
    return instance;
}
  1. AfterGCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    <#code to be executed after a specified delay#>
});
  1. MainGCD
dispatch_async(dispatch_get_main_queue(), ^{
    <#code#>
});

通知

  1. 添加通知
[[NSNotificationCenter defaultCenter] addObserver:<#(nonnull id)#> selector:<#(nonnull SEL)#> name:<#(nullable NSNotificationName)#> object:<#(nullable id)#>];
  1. 移除通知
[[NSNotificationCenter defaultCenter] removeObserver:self];

注释

  1. 属性注释 - explain property
/** <#注释#> */
  1. 函数内部注释 - explain single
// --<#说明#>
  1. 函数注释 - explain mark
#pragma mark - **************** <#输入注释#> ****************

其他

  • Extension

这个是GNU C的对C的扩展语法 Xcode采用的Clang编译,Clang作为GCC的替代品,和GCC一样对于GNU C语法完全支持

你可能知道if(condition)后面只能根一条语句,多条语句必须用{}阔起来,这个语法扩展即将一条(多条要用到{})语句外面加一个括号(), 这样的话你就可以在表达式中应用循环、判断甚至本地变量等。表达式()最后一行应该一个能够计算结果的子表达式加上一个分号(;), 这个子表达式作为整个结构的返回结果

这个扩展在代码中最常见的用处在于宏定义中

({
        <#init#>
        <#code#>
        <#instance#>;
    });
  • 按钮 - btn
({
        UIButton *button = [UIButton buttonWithType:<#(UIButtonType)#>];
        <#code#>
        button;
    });
  • 标签 - label
({
        UILabel *label = [[UILabel alloc]init];
        <#code#>
        label;
    });
  • 视图 - view
({
        UIView *view = [[UIView alloc]init];
        <#code#>
        view;
    });

参考

xcode 常用代码块

OC中的一些编程写法--({"添加代码"}) 花括号用法

推荐阅读更多精彩内容