虽然我使用 Unity/C# 进行开发已有一段时间了,但我对 Xcode 和 Objective C 还很陌生。我很难让自动完成和语法突出显示在 Xcode 8.3 中“正常”工作。在过去的两天里,我一直在整个互联网上搜索并尝试了所有推荐的解决方案和变通方法,但都没有找到。所以我决定提出一个新问题。 重现我的问题的步骤:
- 在 Xcode 中创建新的“单 View 应用程序”项目。
- 创建一个新类“TestClass”。
- 在 TestClass.h 中尝试输入 NSAr... 预期结果:Xcode 应该建议 NSArray(因为 Foundation.h 是自动导入的)。实际结果:没有。 no autocompletion
- 将 UIKit.h 导入 TestClass.h,并在 TestClass.m 中尝试调用 UIViewController 方法。预期结果:Xcode 应建议将 UIViewController 键入,然后突出显示类名。实际结果:两者都不做。 no syntax highlighting
我尝试过的:
- 删除 DerivedData 文件夹。
- 重启 Xcode/计算机(多次)
- 确保将 .m 文件添加到目标(在目标成员窗口中)
- 在 Build Phases > Link Binary With Libraries 中明确添加 Foundation 框架
- 将build设置中的框架搜索路径设置为框架文件夹
- 在“首选项”>“组件”中下载 iOS 和 Xcode 文档
- 安装 Xcode 7.3.1 和 7.0,看不出有什么区别。
我可能在这里遗漏了一些基本的东西,但我认为期望这种功能开箱即用,没有太多麻烦是合理的吗?
如有任何帮助,我们将不胜感激!
更新:
我也试过:
- 将 $(SRCROOT)/添加到 header 搜索路径。
- 提高日志级别:默认写入 com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3 并在 Console.app 中查找特定于 Xcode 的“找不到文件”错误(未找到此类错误)。
此外,测试应用程序非常简单,只有几行代码,并且构建良好。唯一的警告是 UIViewController *vc 变量的“未使用变量”(第二张截图)。
最佳答案
原来问题是由我自己的行为(错误)引起的。
很久以前,当我第一次与 Xcode 进行简短的交互时,我故意尝试禁用它的索引,因为它在我的 Mac 上花费了太长时间(当时还没有升级)。所以我通过在终端中输入以下内容来做到这一点:
defaults write com.apple.dt.XCode IDEIndexDisable 1
就在那里。我完全忘记了这一点,直到最近我不得不再次接触 Xcode,并且被自动完成和突出显示“不工作”的语法所逼疯。没有任何 Xcode 错误。我需要做的就是再次启用索引,方法是在终端中输入:
defaults delete com.apple.dt.Xcode IDEIndexDisable
我显然是在自找麻烦,但希望这些信息对其他人有所帮助。
感谢大家的帮助。
关于ios - Xcode 8.3 自动完成和语法突出显示不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43198405/