在Xcode中快速或者自动添加代码的几种方法

本文介绍了如何在Xcode中使用和创建代码段,详细解释了代码段的作用、创建过程以及自定义方法。同时,探讨了Xcode的文件模板机制,包括模板文件的内容和如何修改系统模板。此外,还提到了项目模板,但未深入展开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 代码段

  • 1.1 当我们在.h文件的#import "XXXXX.h"下面输入@protocol会出现如下提示框:
    @protocol - Objective-C Protocol Definition
    Define an Objective-C protocol.

这就是代码段的功能;

  • 1.2 打开xCode右侧的视图,点击下面"{ }"按钮,切换到代码段浏览标签;在搜索框输入protocol,第一个就是刚才出现的那段代码,双击可以看到如下内容:

    @protocol <#protocol name#>

    <#methods#>

    @end

<##> 作用是占位,## 之间可以输入提示文字;
由于是系统自带的代码段,所以我们不能修改;

  • 1.3 接下来,我们来创建自己的代码段:

在项目中选中已经存在的代码,拖动到刚才代码段列表,弹出代码段编辑窗口;

Title:表示代码段列表展现的名字;

Summary:表示副标题,会出现在名字后面以"-"分开,还会出现在使用时的提示信息里面;

Platform:支持的平台;

Language:使用的语言;

Completion Shortcut:快捷输入,貌似只能以字母开头(支持少数符号,如@);

Completion Scopes:代码段作用范围;如果是在方法里面拖动创建的代码段默认是 "Function or Method" ,如果是在 @implementation@end 之间拖动创建的代码段默认是 Class Implementation;当然还有其它各种作用范围;

  • 1.4 比如我们定义一个字符串属性:

    @property (nonatomic, copy) NSString *name;

把这段代码拖到代码段列表;

TitleNSString 类型属性;

Summary 填快速添加 NSString 类型属性;

Completion Shortcut@procopy;
其它默认,这样我们就能直接输入 @procopy 回车来添加我们的代码了;

  • 1.5 其它:

  • 1.5.1 忘了<##>了,把NSString改为<#NSString#>name改为<#name#>,这样我们就能使用Tab来定位到NSStringname上面,修改成其它类型和名字。

  • 1.5.2 还有一点搞不懂,在.h文件的 @interface@end 之间可以实现,如果在.m文件中就不行,除非把作用范围改成All;如果有知道的,麻烦指点一下。

  • 1.5.3如果不想要某个代码段,可以前往 /Users/[用户名]/Library/Developer/Xcode/UserData/CodeSnippets 删除对应的文件即可;因为名字是随机产生的,所以只能通过创建时间来判断了;同样,想备份的同学可以拷贝整个文件夹即可;当然,如果闲系统的这个功能不友好,可以选择第三方的工具Dash;

2. 文件模板

2.1 为什么我们新建一个继承UIViewController的类,会自带那么多信息?像项目名、用户名、时间 还有一部分代码;

进入到 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates 目录,我们会看到在XCode新建文件时对应的标签;打开对应文件夹,会显示对应标签下所有模板文件和配置信息,这就是XCode自带的文件模板。
以我们最常用的UIViewController为例,继续进入 /Source/MyCocoa Class.xctemplate/NSObjectObjective-C 目录,里面只有两个文件:FILEBASENAME.h 和 FILEBASENAME.m ;打开这两个文件,你会看到一些占位信息,如下:

___FILENAME___ :文件名称包含后缀;

___PROJECTNAME___ :项目名称;

___FULLUSERNAME___ :当前电脑用户名;

___DATE___ :创建文件日期;

___COPYRIGHT___ :预定义信息;

___IMPORTHEADER_cocoaSubclass___ :引入文件父类;

___FILEBASENAMEASIDENTIFIER___ :还是文件名,不包含后缀;

___VARIABLE_cocoaSubclass___:父类

返回上一级目录存放着模板配置文件TemplateInfo.plist :

Ancestors:数组,继承的模板,支持多个;

Kind:固定值,Xcode.IDEKit.TextSubstitutionFileTemplateKind 或 Xcode.IDEFoundation.TextSubstitutionFileTemplateKind ;

Concrete:是否显示在工程窗口中;

Description:模板描述;

Summary:模板简介;

SortOrder:模板排序的优先级,值越高越靠前;

Platforms:数组,模板支持的平台;如果没有这个字段,则支持全部平台;

Options:数组,重要!!!每个item代表一些配置信息;

其它:

TemplateIcon:用于区别其它模板的icon,大小128 X 128;

正是由于存在以上文件,使得我们新建文件时,不会只出现一个空的文件;

2.2 这些信息我们能不能修改或者添加?

答案是肯定的;我们采用简单粗暴的方式,直接在系统模板的基础上修改;

  • 进入~/Library/Developer/Xcode/Templates/File Templates,如果没有新建即可;这是自定义模板的路径,虽然我们可以在系统路径修改,但不建议这么做;
  • 创建一个文件夹,命名为自定义模板;当然也可以用系统的文件夹名称命名(如Sound),这样你自定义的模板就会出现在Sound标签下;
  • 在新建的文件夹下面创建一个后缀为.xctemplate的文件夹MyViewController.xctemplate,并复制系统目录下/Sound/Cocoa Class.xctemplate里面的NSViewControllerObjective-C TemplateInfo.plistMyViewController.xctemplate
  • 打开TemplateInfo.plist,删除Platforms键,展开Options删除Item2 Item3; 展开Item1 -> Values ,增加一个Item UIViewController
  • 修改NSViewControllerObjective-CUIViewController,现在你可以在XCode里面使用自己的模板创建UIViewController了,但是我们的目的还没达到,go on;
    打开上一步修改的 UIViewController文件夹,编辑___FILEBASENAME___.m文件,随便加,随便改;

3.项目模板

暂时没用到,用到再补充吧;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值