Xcode 9自动完成不能100%工作 - 部分工作

Ern*_*nie 78 xcode autocomplete xcode9

今天早上,Xcode 9.0(9A235)显示了一个新的/奇怪的自动完成框,它根本不像以前那样.如何获得完整的自动完成框,以便自动完成看起来像通常一样?

在此输入图像描述

Lal*_*hna 133

尝试:

  1. 转到Xcode>首选项>文本编辑
  2. 在代码完成下 - 取消选中'在输入时建议完成'
  3. 退出Xcode然后重新启动Xcode.
  4. 再次转到Xcode>首选项>文本编辑
  5. 退出Xcode然后重新启动Xcode.
  6. 现在转到代码完成并选中 "在输入时建议完成".
  7. 尝试输入库函数或枚举并享受!

  • 在 XCode 11.5 中仍然有必要,Catalina,2020 年 7 月。非常感谢! (5认同)
  • Xcode 12.1 和 Catalina 10.15.7 Nov 20 遇到同样的问题...步骤 4 和 5 对我来说不是必需的 (3认同)
  • 很棒的解决方案.太奇怪了.我想知道你是怎么复制这个的. (2认同)
  • 百万美元的答案。这甚至修复了“跳转到定义”。 (2认同)

Ern*_*nie 49

删除DERIVED DATA文件夹似乎解决了我的问题.感谢这篇文章:swift println()在编写代码时没有显示自动完成选项

  • 这在重新启动后有所帮助。谢谢。 (2认同)

小智 33

Xcode 版本 11.0 (11A420a)

我已经尝试过Lal Krishna为 Xcode V11.0 提供的解决方案。它工作了几次,但后来我没有结果。

我找到了一种解决方案。您必须删除两个文件:

  1. 库/开发人员/Xcode/派生数据(如前所述)
  2. 库/开发人员/Xcode/UserData/IDEEditorInteractivityHistory

该解决方案现在可以帮助我。可能对其他人有用

  • 为我工作。我只想说 Visual Studio 2002 (!) 比 Xcode 2009-2019 更好。这些年来,Xcode 的 bug 实在是太多了。我不明白为什么苹果不关心开发者。Xcode 由开发人员制作!(我必须把它拿出来) (4认同)

Set*_*hmr 23

要尝试的事情:

1

如果使用cocoapods,请在项目目录中运行此命令:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;
Run Code Online (Sandbox Code Playgroud)


2

清理缓存数据

清理项目 - > Cmd + Shift + K.

清理构建文件夹 - > Cmd + Shift + Option + K.

如果您跳过第一步:
删除派生数据
Xcode Preferences- > Locations- >
箭头符号转到DerrivedData- >删除文件夹


3

检查Build Phase的编译源.

每一个.swift.m文件中的项目应该是在此列表中,否则将无法在这些文件中自动完成.


4

优化您的编辑器:

在每个类属性和函数上使用fileprivate,可以减少每个项目的编译器工作范围.

编写模块化/ OOP代码,这样您就可以减少编译器读取的代码.

当结果是复杂计算时,避免使用Type Inferance,并尝试将复杂计算分解为let this = smallerOperation语句


Isa*_*ner 14

当文件不是Target的成员时,可能会发生这种情况.打开自动完成功能不起作用的文件,并显示Xcode右上角的"实用工具"选项卡(下面的屏幕截图中为蓝色). Xcode右上角视图按钮的屏幕截图

Xcode Target Membership选项的屏幕截图

确保检查您的目标(通常是您的应用程序名称).自动完成功能几乎可以立即生效,无需重新启动Xcode,清除或删除派生数据.


Sco*_*des 12

如果您对文件进行了冗余命名,也会发生这种情况。例如,

Data.swift

Data.swift


Abh*_*hal 10

这是一些解决方法,但有效。

  1. 清理项目... Command + Shift + K

  2. 清理构建文件夹... Command + Shift + Options(Alt) + K

  3. 删除项目的派生数据...这可以在此链接的帮助下完成:

    如何删除 Xcode 9 中的派生数据?

  4. 关闭 XCode。

  5. 重新打开 XCode(让索引完成)并构建项目... Command + B

一旦完成构建,建议就会回来。我已经试过两次了。

更新:

有时问题可能就像重复文件名一样简单。仔细检查您添加的任何新文件名是否与旧文件冲突。

在 Xcode 11.4 中,即使您将现有文件移动到另一个组,建议也会消失。这可以通过重新启动 Xcode 来解决。


Gen*_*ani 8

我正在使用Xcode 10.2,但遇到了同样的问题。

来自axel的答案帮助我解决了。

无论如何,我将描述更多:

  1. YourProject.xcodeproj通过单击鼠标右键转到并打开Show Package Contents
  2. 转到xcuserdata并删除您的youruser.xcuserdatad

如果您还安装了xcworkspace(如果已经安装了任何Pod),请执行步骤3&4,否则请跳过步骤3&4:

  1. YourProject.xcworkspace通过单击鼠标右键转到并打开Show Package Contents
  2. 转到xcuserdata并删除您的youruser.xcuserdatad

  3. 退出Xcode

  4. 使用终端删除派生数据

rm -rf〜/库/开发人员/ Xcode / DerivedData

  1. 打开Xcode并检查它是否有效。

在此处输入图片说明


Mar*_*Jun 7

从测试目标中删除文件解决了我的问题。


Xco*_*der 6

经过长时间的搜索,我终于为我解决了这个问题。在 Xcode > Preferences > Text Editing 中,在“Code Completion”中,出于某种原因,我选中了“使用 Escape 键显示完成建议”。一旦我取消选中这个框,自动完成就像一个魅力,甚至不需要重新启动 Xcode!(Xcode 10)


abh*_*ran 5

请尝试这样做:

选择文件 >>,检查文件是否已添加到UITesting或UnitTesting目标(文件检查器-> Target Membership)。如果是这样,请取消选中这两个选项,并确保仅选择了项目目标。然后构建并尝试自动完成是否正常。

这对我有用。希望它能帮助某人。