Xcode 常用代码块

作者: SkyMing一C | 来源:发表于2019-07-12 11:12 被阅读0次

    在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中的一些编程写法--({"添加代码"}) 花括号用法

    相关文章

      网友评论

        本文标题:Xcode 常用代码块

        本文链接:https://www.haomeiwen.com/subject/cjgdkctx.html