当前位置: 首页 > 编程日记 > 正文

Xcode 添加代码块

我们经常会定义一些retain的property,而且大概每次我们都会像这样写:

@property (nonatomic, retain) Type *name; 

每次都要老老实实的把“@property (nonatomic, retain)”敲一遍,这样太累了。

那么能不能像XCode自带的代码提示功能一样,每次我们只需敲两三个键,代码提示就出来了,然后一下子就可以把我们这段代码输入进去?这样不是方便了许多吗?

Yes, we can. But how?

别急,下面我就以这段代码为例,展示如何在XCode中添加自定义的代码片段。

  • 用XCode随便打开或新建一个项目,然后随便打开一个.h或者.m文件。

  • 随便找个空白位置,输入“@property (nonatomic, retain) <#type#> *<#name#>;”。(不含双引号,“<#”、“#>”这两个符号的作用,你一会儿就明白了。)

  • 打开XCode右侧的Utilities View,然后在其靠底部的位置找到并打开Code Snippets Library。

  • 选中我们刚刚输入的那段代码,把它拖到Code Snippets Library中。

  • 滚动到Code Snippets Library的最底部,找到一个花括号上面带个“User”文字的图标。

  • 单击那个图标,会弹出一个窗口。然后点击窗口底部左边的Edit按钮

  • 在Title和Completion shortcut这两项中,输入代码片段的标题和快捷键。快捷键用于激活代码提示,标题则会显示在代码提示中。此例中,我们输入标题为“Objective-C @property retain”,快捷键为“@property ”。

  • 选择对应的platform、language和Completion scope。然后点击“Done”按钮。
    此例中,platform我们选All;language选Objective-C;Completion scope选Class Interface Methods。
    Completion scope指定了激活代码提示的快捷键的有效的区域,比如这里我們选的Class Interface Methods就是说明这段代码的快捷键在声明类方法的区域才能激活代码提示;在其他任何区域,无论怎么敲这个快捷键,都不会出现这段代码的提示。

好,现在删掉我们刚刚输入的代码。然后随便找类的头文件,在定义类property的区域,试试敲入我们刚刚设置的快捷键。你注意到了吗?我们仅仅才敲入“@p”这两个字符,代码提示就已经出来了。选中代码,回车,XCode自动把代码给我们补全了,是不是快多了?

ps.
现在你知道“<#”、“#>”这两个符号的作用了吧?
为什么例子中,我们的快捷键“@property ”后面要加一个空格?试试不加空格有什么效果?

转载于:https://www.cnblogs.com/Apolla/p/4734803.html

相关文章:

软考自查:计算机网络

计算机网络 内容提要 七层模型网络技术标准与协议网络类型与拓扑结构网络规划与设计IP地址与子网划分特殊含义IP地址HTML无线网网络接入技术IPv6OSI/RM七层模型 七层模型练习题 某IP网络连接如图所示&#xff0c;在这种配置下IP全局广播分组不能够通过的路径是_B_。A&#xff1…

restful url 设计规范_restFul接口设计规范

1. 域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单&#xff0c;不会有进一步扩展&#xff0c;可以考虑放在主域名下。https://example.org/api/2. 版本(Versioning)应该将API的版本号放入URL。http://www.example.com/app/1.0/foohttp://www.…

Dictionary作为数据源绑定,调用c++库中返回为BYTE*的函数,listView项排序

最近在做一个电子档案管理的项目。现在还处于初期&#xff0c;只是做一个简单demo拿去跟客户演示。至于最后谈不谈得下来&#xff0c;到底做不做&#xff0c;反正我是不看好&#xff0c;但没因为这样就马马虎虎、草草了事。这个项目算是b/s加c/s混合体&#xff0c;现在已经做的…

ES6 新特性

ES6 先阅读这个http://gejiawen.github.io/2015/07/28/Javascript/ECMAScript6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E7%B3%BB%E5%88%97/ECMAScript6%E6%96%B0%E7%89%B9%E6%80%A7%E7%AE%80%E4%BB%8B/ ES6的特性在chrome中默认是关闭的 Visit chrome://flags/#enable-javascrip…

一次被僵尸网络病毒攻击的过程

事件背景 回想起来应该算是去年的事情了, 时值 2019 年 1 月 24 日早上, 当时我正忙碌于开发手头的一个珠宝分销系统项目, 由于已经进行了多日封闭式开发, 项目初见效果, 准备放到内网服务器 A 上跑跑看. 项目的一些功能需要通过公网才能访问, 于是便打算通过一台之前就架设在公…

c2 链路_POS链路不能打开的解决办法

介绍的是POS链路不能打开的解决办法&#xff0c;其原因是C2字节不匹配&#xff0c;这里以华为路由器为组网环境。一、网络环境路由器A有GE接口和2.5G POS接口与其他路由器连接&#xff0c;启动路由器A后&#xff0c;发现GE端口的状态为正常开启&#xff0c;但2.5G POS端口无法开…

“寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面

如果第二次看到我的文章&#xff0c;欢迎下方扫码订阅我的个人公众号&#xff08;跨界架构师&#xff09;哟~本文长度为5723字&#xff0c;建议阅读15分钟。坚持原创&#xff0c;每一篇都是用心之作&#xff5e;这是一篇以程序员视角写的文章&#xff0c;但是内容是互联网行业通…

TCP拥塞控制算法内核实现剖析(二)

内核版本&#xff1a;2.6.37 主要源文件&#xff1a;linux-2.6.37/ net/ ipv4/ tcp_bic.c 本文主要分析BIC算法实现 1. 相关结构体和参数 /* BIC TCP Parameters */struct bictcp {u32 cnt ; /* increase cwnd by 1 after ACKs */u32 last_max_cwnd ; /* last maximum snd_cw…

关于IOS中的self关键字

在C#、Java中都有一个关键字this用于表示当前对象&#xff0c;其实在ObjC中也有一个类似的关键字self&#xff0c;只是self不仅可以表示当前对象还可以表示类本身&#xff0c;也就是说它既可以用在静态方法中又可以用在动态方法中。-(void)setName:(NSString *)name andAge:(in…

中值定理符号怎么读_微分、微分中值定理、泰勒公式

问对问题&#xff0c;找对方法&#xff0c;做对的事~ 黑莓 2020/10/09 温习001-031逻辑、集合、空间 线性代数00线性代数研究什么内容&#xff1f;-上海交大032-047行列式的定义、性质与计算10/03048-078矩阵的定义、运算10/03079-117可逆矩阵、初等变换与秩10/04…

Java高级特性增强-多线程

请戳GitHub原文: https://github.com/wangzhiwub... 大数据成神之路系列&#xff1a; 请戳GitHub原文: https://github.com/wangzhiwub... Java高级特性增强-集合 Java高级特性增强-多线程 Java高级特性增强-Synchronized Java高级特性增强-volatile Java高级特性增强-并发集合…

微软企业库4.1学习笔记(八)创建对象 续集2

3.3通过配置指定和Unity的整合 另外一种方法是在配置源中指定配置的需要&#xff0c;你可以指定下面的一条或者多条&#xff1a; 你可以在Unity配置中指定想要的BlockExtensions  你可以在Unity配置中的type配置节指定如何创建企业库对象&#xff0c;指定类型映射的关系&…

Kali Linux python 安装pip

安装pip&#xff1a;apt-get install python-setuptoolseasy_install pippip install xxxx转载于:https://www.cnblogs.com/arhatlohan/p/4737828.html

3dmax图像采样器抗锯齿_内幕揭秘!同样的场景同一张图,用3DMAX网渲平台进行二次渲染时间竟然相差3个小时之多!...

一个分辨率:4000*2000的室内客餐厅&#xff0c;3dmax版本是2014版本&#xff0c;渲染器版本为vray3.63&#xff0c;机器&#xff1a;阿里云1台服务器&#xff0c;这个同样的场景同样的参数同一张图&#xff0c;用3dmax网渲平台进行二次渲染发现时间相差了将近3个小时之多&#…

2015/8/18

一、git, switch to找不到师傅新创的branch 解决方法&#xff1a;切到git视图去pull&#xff0c;然后切回java视图&#xff0c;再Team->switch to&#xff0c;就能找到了 二、在师傅的环境中能successful&#xff0c;在我的环境中却是failed 解决方法&#xff1a;eclipse-&g…

Javascript - prototype、__proto__、constructor

最近看了很多文章&#xff0c;想要更通透的搞懂JS中的prototype、__proto__与constructor属性&#xff0c;从各个博主的文章里摘取了我认为可以有助于理解的一些内容&#xff0c;希望自己能够掌握好这一重要知识点的同时也帮助到大家&#xff0c;具体内容请见下文。 &#xff0…

DOS下读取4GB内存

好文章我收集下起来 CPU上电后&#xff0c;从ROM 中的BIOS开始运行。 BIOS是处在内存的最顶端64KB&#xff08;FFFF0000H&#xff09;&#xff0c;还是1MB之下的64KB&#xff08;F0000H&#xff09;处呢&#xff1f;事实上&#xff0c;BIOS在这两个地方都同时出现。 在保护模式…

7纳米duv和euv_要超车台积电 三星宣布采用EUV技术7纳米制程完成验证

在晶圆代工市场&#xff0c;台积电与三星的竞争始终是大家关心的戏码。三星虽然有高通等VIP客户&#xff0c;但在7纳米制程节点&#xff0c;高通预计会转投台积电&#xff0c;三星要想受更多客户的青睐&#xff0c;只能从制程技术着手了。这也是三星跳过非EUV技术的7纳米制程&a…

HDU 1711 Number Sequence(KMP算法)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1711 Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15548 Accepted Submission(s): 6836Problem DescriptionGiven two s…

分享45款高质量的免费(X)HTML/CSS模板

当你需要在短时间内设计出一个网站的时候&#xff0c;网站模板就非常有用了。这也就是为什么这些设计模板已成为设计领域的最新趋势的原因。在这篇文章中&#xff0c;收集了各式各样的网站模板&#xff0c;您可以免费下载使用&#xff0c;希望这些设计模板不仅带给您灵感&#…

运维开发笔记整理-前后端分离

运维开发笔记整理-前后端分离 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流行&#xff08;单页Web应用&#xff08;single page we…

初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型

一 数据库初识1.1 什么是数据库数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库是以一定方式储存在一起,能予多个用户 共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合…

WinForm导出文件,你懂的……

好久没有写文章了&#xff0c;下面把自己最近程序中用到的一个小小的导出文件的方法给在家分享一下&#xff0c;欢迎大家来排砖&#xff0c;谢谢~不说废话了&#xff0c;直接上代码&#xff1a; 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; …

PL/SQL第五章 Order by排序

1 -- 排序2 -- 1、列明排序3 -- 2、别名排序4 -- 3、列位置排序&#xff08;当使用union,union all,intersect,minus集合操作&#xff0c;列明不同&#xff0c;但希望排序&#xff09;5 SELECT deptno,dname FROM dept UNION6 SELECT empno,ename FROM emp7 ORDER BY 1 DESC;8 …

想转行学python过来人提醒大家几点

因为目前python非常火&#xff0c;应用也非常广泛&#xff0c;是目前最火的行业之一&#xff0c;竞争很大&#xff0c;工资很高&#xff0c;未来发展也极好。 首先告诉你&#xff0c;零基础学习python难度还是有的&#xff0c;python的专业程度本身就不简单&#xff0c;学习这事…

mysql答题表设计_PHP+MYSQL问答系统中的提问和回答的表怎么设计

展开全部PHPMYSQL 的问答系32313133353236313431303231363533e78988e69d8331333337396236统的设计与实现&#xff0c;问答系统简而言之 就是一个网上交流系统&#xff0c;针对学校这个特定环境&#xff0c;以学生和老师为主体&#xff0c;以实验室信息交流为话题而建立起的一个…

Android实时获取音量(单位:分贝)

基础知识 度量声音强度&#xff0c;大家最熟悉的单位就是分贝&#xff08;decibel&#xff0c;缩写为dB&#xff09;。这是一个无纲量的相对单位&#xff0c;计算公式如下&#xff1a; 分子是测量值的声压&#xff0c;分母是参考值的声压&#xff08;20微帕&#xff0c;人类所能…

排序算法 - 堆排序

堆排序是指利用堆这种数据结构所设计的一种排序算法。 类型&#xff1a;选择排序时间复杂度&#xff08;最坏&#xff09;&#xff1a;O(nlogn)时间复杂度&#xff08;最好&#xff09;&#xff1a;O(nlogn)时间复杂度&#xff08;平均&#xff09;&#xff1a;O(nlogn)空间复杂…

textContent与innerText的不同(转发)

textContent与innerText的不同 IE下有个innerText属性&#xff0c;FF下有个textContent属性。很多以前给IE写脚本的&#xff0c;在FF下找不到innerText属性&#xff0c;于是网上搜到的建议是用textContent来替代。反之给FF写脚本的也一样。 但是实际上&#xff0c;这里有个误解…

mysql插入性能_mysql 数据量大时插入和查询性能

现在mysql中有数据33.8w的数据&#xff0c;然后做查询和更新或插入操作&#xff0c;速度很慢&#xff0c;基本100条数据就要1.68s。好慢啊&#xff0c;我要测试一下&#xff0c;到底慢在哪&#xff1f;能不能提高点速度&#xff1f;参考一篇博文&#xff1a;http://blog.csdn.n…