Xcode 10 & Xcode 11 代码完成将所有对象显示为 "int *"

Xcode 10 & Xcode 11 Code Completion shows all objects as "int *"

我遇到一个问题,自动完成根本不显示。例如,如果我尝试访问 window 的 rootViewController,智能感知视图甚至不会出现。如果我按 Control-Space,出现的只是一个小视图,上面写着 "No Completions."

在前面的符号上,在此示例中,我的对象上的 window 属性 出现了 Intellisense,但它将 属性 标识为 int * 类型.

我已经完成了所有明显的事情(执行干净、清晰的派生数据、重启 Xcode、重启设备)但问题仍然存在。

我找到了几页(包括 Whosebug 和其他地方的文章)关于类似但不完全相同的问题,但尚未提出解决方案。

如何让自动完成功能恢复正常?

这最终与导入中的 non-portable 路径相关,这破坏了 Intellisense。我的团队有一个大型项目,其中包含几个其他项目作为库。主要项目将包括其中之一:

#import "LibraryName/LibraryName.h"

在一个实例中,库项目也在执行相同的导入。我通过让库从自身导入它需要的特定 headers 来解决这个问题。

#import "LibraryComponent.h"
#import "NSString+LibraryCategory.h"

我也遇到了同样的问题,自动完成在我的项目中不起作用。我已经完成了以下步骤。它奏效了

  1. 在 xcode 和 #import Foundation 框架中打开 file/class
  2. 在 xcode 中打开项目的构建阶段。添加基础 框架

  3. 现在从 Finder 转到您的项目文件夹,右键单击您的 .xcodeproj file.Choose

    Show Package Contents

  4. 现在选择select

    xcuserdata

    并删除xcuserdata

  5. 里面的文件夹

  1. 删除上面截图中的文件夹后。建立你的项目和 运行。它现在可以使用自动完成功能。

必须尝试这个它对自动完成和全白的语法颜色的真正工作。

  1. 首先在你的 class ( import Foundation ).
  2. 单击您的项目名称并转到构建阶段。
  3. 现在转到库并通过单击 + 号添加 Foundation.framework,您将获得该选项。
  4. 现在转到您的项目文件夹并右键单击工作区文件并select显示包内容。
  5. 右击Xcuser,删除里面的文件。
  6. 现在清理构建项目并退出 Xcode。

Now run the project and it will work << :)