谈谈XCode代码自动完成Code Sense功能


目前关于XCode代码自动完成方面的文章很少,在这里谈一下自己对于XCode code sense功能的理解。本文相对详细地介绍这方面的功能。

也许你已经注意到了,有时Xcode会在你键入代码的过程中给出建议,这就是Xcode的代码提示功能,通常叫做代码自动完成功能。编写程序时,Xcode会为所有内容生成索引,包括项目中变量名和方法名,以及导入的框架。它知道局部变量的名称及其类型,甚至可能知道你的编码习惯是好是坏。输入代码时,Xcode不断地比较你输入的代码和它生成的符号索引,如果两者匹配,Xcode就会给出建议。如图7-3所示。

 
(点击查看大图)图7-3 Xcode的代码自动完成功能

上图中,我们键入了[All,Xcode认为我们想要给AllWeatherRadial类发送消息。它猜对了,所以我们可以按tab键,使用AllWeatherRadial作为自动完成的内容。

你会说:"啊,这也太简单了!我们只有一个以All开头的类啊!"这话没错,但即使有很多可能的代码,Xcode也能够提供自动完成列表。并且,在任何时候你都可以按Esc键,让Xcode打开这个包含所有可能代码的自动完成列表,如图7-4所示。

 
(点击查看大图)图7-4 all(All)开头的代码自动完成列表

我们可以看到有很多以"all"开头的可能代码。Xcode发现当前项目中的AllWeatherRadial是以All开头的,于是认为它是合理的第一选择。名称旁边的彩色方框表示这个符号的类型:E表示枚举符号f表示函数#表示#define指令m表示方法C表示类,等等。

如果不想显示自动完成列表,可以使用"control+."在各个选项之间循环,也可以通过"shift+ctrl+."反向循环。如果你没有记住我们提到过的快捷键也没关系,本章的最后会有一个快捷键的备忘表单。

你可以把自动完成提示列表当成类的API便捷参考来使用。NSDictionary类有一个方法,可以指定一系列的参数用来生成字典的键值和对象。这个方法是dictionaryWithKeysAndObjects还是dictionaryWithObjectsAndKeys?谁能记得住呢?查找这个名称的一个简单方法是输入[NSDictionary的方法调用指令,输入一个空格表示类名已经输入完毕,然后按Esc键。Xcode知道你将要在这里输入一个方法名,于是显示出NSDictionary中的所有方法。果然,我们看到了方法dictionaryWithObjectsAndKeys,它位于图7-5中提示列表的上方。

 
(点击查看大图)图7-5 用代码提示功能查看类的内容

有时,使用代码完成功能时,会在提示里出现一些奇怪的小方框,如图7-6所示。这又是怎么回事?

注意,在这里Xcode提示的是接收两个参数的方法setTire:atIndex:。Xcode的代码提示功能不仅仅只是补充名称。这里显示的两个参数实际上是占位符。如果再次按tab键,这个方法的名称将会被补充成setTire,如图7-7所示。

 
图7-6 代码自动完成中的占位符

 
图7-7 选择一个占位符
第一个占位符突出显示了,你可以输入任何数值当做实参来替换它。也可以单击第二个占位符然后替换它。你甚至可以不用把手从键盘上拿开,

control和"/"键就可以将光标移到下一个占位符。

输入程序代码时,也许你会注意到在输入了某些字符(如)、]或})后屏幕会有些闪烁。如果发生了这种情况,就是Xcode在告诉你这个闭括号所对应的开括号在哪里,如图7-8所示。

 
(点击查看大图)图7-8 括号匹配

这个功能有时被称为"括号匹配",当你关闭一连串复杂的分隔符时,使用它会非常方便。要保证你输入的每个闭括号都和你想关闭的开括号相互匹配。如果你弄错了,比如应该输入")"的地方用了"]",Xcode会发出蜂鸣声,而且也无法显示与之匹配的开括号。

也可以双击某个分隔符,Xcode会选定它以及与它匹配的括号之间的全部代码。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值