Xcode 8.3自动完成和语法突出显示不起作用

时间:2017-04-04 04:40:50

标签: ios objective-c xcode autocomplete syntax-highlighting

我是Xcode和Objective C的新手,尽管我已经使用Unity / C#进行了一段时间的开发。我正在努力让自动完成和语法突出显示工作"正确"在Xcode 8.3中。在过去的两天里,我一直在互联网上搜索并尝试了我发现的所有推荐的解决方案和解决方法,没有任何运气。所以我决定开一个新问题。 重现我的问题的步骤:

  • 在Xcode中创建新的"单一视图应用程序"项目
  • 创建一个新类" TestClass"。
  • 在TestClass.h中尝试输入NSAr ...预期结果:Xcode应该建议NSArray(因为Foundation.h是自动导入的)。实际结果:它没有。 no autocompletion
  • 将UIKit.h导入TestClass.h,并在TestClass.m中尝试调用UIViewController方法。预期结果:Xcode应该建议输入UIViewController,然后突出显示类名。实际结果:它既没有。 no syntax highlighting

我尝试了什么:

  • 删除DerivedData文件夹。
  • 重新启动Xcode / computer(多次)
  • 确保将.m文件添加到目标(在目标成员资格窗口中)
  • 在Build Phases>中明确添加Foundation框架。链接二进制文件库
  • 将Build Settings中的Framework Search Paths设置为Frameworks文件夹
  • 在偏好设置>中下载iOS和Xcode文档。组件
  • 安装Xcode 7.3.1和7.0,看看没有区别。

我可能在这里遗漏了一些基本内容,但我认为期望这样的功能开箱即用,没有太多麻烦是合理的吗?

非常感谢任何帮助!

更新

我也尝试过:

  • 将$(SRCROOT)/添加到页眉搜索路径。
  • 增加日志级别:默认写入com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3并查找特定于Xcode的文件"找不到文件" Console.app中的错误(未发现此类错误)。

此外,测试应用程序是一个非常简单的应用程序,几行代码,并且构建良好。唯一的警告是"未使用的变量"对于UIViewController * vc变量(第2个截图)。

1 个答案:

答案 0 :(得分:2)

原来这个问题是由我自己的行为造成的(错误)。

很久以前,当我第一次与Xcode进行简短的交互时,我故意尝试禁用其索引,因为我的Mac上花了太长时间(当时没有升级)。所以我在终端输入了这个:

defaults write com.apple.dt.XCode IDEIndexDisable 1

就是这样。我完全忘记了这一点,直到最近我不得不再次触摸Xcode,并被自动完成和语法突出显示"没有工作"而疯狂。没有任何Xcode错误。我需要做的就是让它工作再次启用索引,方法是在终端中输入:

defaults delete com.apple.dt.Xcode IDEIndexDisable

我显然创造了自己的麻烦,但希望这些信息对其他人有所帮助。

感谢大家的帮助。