Xcode 7.3自动完成是如此令人沮丧


96

Xcode中有一个新的自动完成功能。可能是有用的,因为它不仅检查名称的开头等。但是我发现它经常根本找不到类名或const名称等。我需要自己输入整个名称。总的来说,我发现这使我的生活更加艰苦,并且编码更加耗时。有没有办法切换到以前的工作方式?


使用7.3作为Beta的使用者已经抱怨了好几个星期了:stackoverflow.com/questions/35586056/…–
马特

您可以在developer.apple.com/downloads上手动下载较旧的xcode ,例如xcode 7.2.1:adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…– 2016
乔治

43
我简直不敢相信他们发布了一个重要版本,其中包括一些重要的自动完成功能。好像苹果公司没人真正使用Xcode进行开发。
soleil

3
这严重影响了我的生产力,以至于我又恢复到Xcode 7.2.1,因此实际上我可以再次回到正常的开发速度。我比平时更讨厌Apple的这台。他们不仅迫使我使用El Capitan来运行Xcode 7.3,而且当我到达那里时,我发现承诺的土地远非现实。他们是否完全测试了这些东西?一如既往地不尊重“他们的”开发人员。
Quintin Willison

2
Xcode 7.3.1已于昨天发布,经过我的测试,此错误仍然存​​在...但是Apple表示他们已在7.3.1中对其进行了修复。
文森特坐在

Answers:


18

Xcode 7.3.1

  1. 在Xcode>“偏好设置”>“文本编辑”中

    取消选中 Enable type-over completions

  2. 重新启动Xcode


14

看来,清除XCode->首选项->文本编辑中的“启用打字完成”复选框可以解决问题。至少在我看来,自动补全是一种旧方法,因此它可以自动补全在此之前我必须手动输入的类名。


尝试过,但是它仍然不能正确完成类名。
Erik B

我没什么区别。仍然需要完成自定义名称... :(
matthewfx 2016年

为此,您必须打开索引。要打开索引,您不能在Xcode中进行。您必须在shell中执行以下行。然后重新启动Xcode。%默认删除com.apple.dt.Xcode IDEIndexDisable看到stackoverflow.com/questions/7328041/...
andrewz

5

这绝不是一个适当的解决方案,但是它使我在过去的几天里(勉强)保持了理智:在每次构建之后,您都需要清除“派生数据”文件夹。您可以在中找到此文件夹Xcode > Preferences > Locations > Derived Data。只需丢弃整个内容,它就会启动重新索引步骤,该步骤应该恢复正确的自动完成功能。不幸的是,我发现一旦构建,自动完成行为就会恢复为损坏状态。


4

只需打开Xcode派生数据文件夹并删除该文件夹

/Users/yourUserName/Library/Developer/Xcode/DerivedData

然后重新启动Xcode,现在自动补全就像一个超级按钮


这对我有用,我不知道为什么它被评为负面。
Mike M

1

我的印象是,自动补全的某些“部分”会在一段时间后失效。我用来重新启动Mac使其恢复工作。但是有时它很快又会失败。也许@Alex Bykov的答案与重新启动相结合就能解决问题。

无论如何:Xcode的自动完成总是很糟糕。AppCode曾经使它变得更好。不幸的是还没有很快。



0

它找不到类名

要解决此问题,您可以尝试按 Command + Shift + KCommand + B 几次,这会暂时起作用。


1
难道是Cmd + Shfit + K(清洁),加利福尼亚+ Shfit +选项+ K(干净生成文件夹),关闭Xcode中,删除~/Library/Developer/Xcode/DerivedData,重新启动OS X,它仍然没有帮助。:-)
TaylanUB '16

1
我们有一个相当大的项目,从头开始编译需要20分钟,因此清理和重建不是我们的选择……
longbow

0

Xcode 7.3.1

我将分享另一个可能的原因,即几天后我们发现了。我们有多种方案,在其中一种方案中,桥接头文件正在导入不再存在的文件。因此,它在编译和运行时没有中断(标头属于另一种方案),但是却导致自动完成中断(找不到任何Objective-C类)。

希望对别人有帮助!


0

在尝试了不同的方法之后:

  • 删除衍生数据
  • 在构建设置中关闭交换模块
  • 完全清洁
  • 重新启动

仅此有效:

  • 在文件的@end之后找到任何注释掉的(/ * abc * /)代码,然后删除。

感谢Max_B:https ://forums.developer.apple.com/thread/7439

就我而言,其他项目都可以正确自动完成。如果所有项目都无法正确预测代码,则可能是另一个问题,其他答案可能会起作用。


-1

我在尝试制作OS X应用程序时遇到了此问题,并且可以通过确保实际下载了Xcode 7.3文档和OS X 10.11.4文档来解决此问题。这样做完全恢复了我的自动完成功能。我的完整说明在下面以及在我对类似问题的回答中:https : //stackoverflow.com/a/39420664/3444925

我自己遇到了这个问题,在浏览了所有其他与此类似的问题和答案之后,我找不到解决方案。但是,我终于找到了对我有用的东西。

转到Xcode -> Preferences -> Components。在那里您可能会发现一个类似于以下内容的屏幕:

在此处输入图片说明

这表明尚未下载文档,因此,任何尝试在不下载文档的情况下重新编制索引或重建应用程序的操作都会使您无法使用自动完成功能。

下载Xcode 7.3文档和OSX 10.11.4文档后,这足以使我重新获得自动完成功能(我正尝试构建OS X应用,请随时下载与您相关的尽可能多的文档)。


鼓励链接到外部资源,但是请在链接周围添加上下文,以便您的其他用户会知道它是什么以及为什么在那里。如果目标站点无法访问或永久脱机,请始终引用重要链接中最相关的部分。
pableiros

我刚刚在此处添加了完整答案作为此处的区块引用@pableiros
jkunzika

-1

直到我创建了几个新的类文件,我才遇到这个问题。其他类工作正常,但自动完成功能不适用于新文件中的任何内容...

FIX(对我来说)-我必须将这些文件添加到所有目标中,包括单元测试目标,即使我尚未使用它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.