【发布时间】:2017-08-29 03:11:13
【问题描述】:
我对 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/电脑(多次)
- 确保将 .m 文件添加到目标(在 Target Membership 窗口中)
- 在 Build Phases > Link Binary With Libraries 中显式添加 Foundation 框架
- 将 Build Settings 中的 Framework Search Paths 设置为 Frameworks 文件夹
- 在 Preferences > Components 中下载 iOS 和 Xcode 文档
- 安装 Xcode 7.3.1 和 7.0,看看没有区别。
我可能在这里遗漏了一些基本的东西,但我认为期望这样的功能开箱即用,没有太多麻烦是合理的?
任何帮助将不胜感激!
更新:
我也试过了:
- 将 $(SRCROOT)/ 添加到标题搜索路径。
- 提高日志级别:默认写入 com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3 并在 Console.app 中查找 Xcode 特定的“找不到文件”错误(未找到此类错误)。
此外,测试应用程序是一个非常简单的应用程序,只有几行代码,并且构建良好。唯一的警告是 UIViewController *vc 变量的“未使用变量”(第二张截图)。
【问题讨论】:
-
Testclass 的子类是什么
-
@NAVEENKUMAR TestClass 是 NSObject 的子类,如屏幕截图所示,没有自己的子类。
-
@bala 感谢您的链接。我相信我在以前的搜索中遇到了所有这些。无论如何,我再次浏览了它们并执行了推荐的修复(将 $(SRCROOT)/ 添加到标题搜索路径,增加日志级别并在 Console.app 中查找错误等),但没有运气。此外,这只是一个带有几行代码的测试应用程序,并且构建良好。
-
如果问题仍然存在,请在stackoverflow.com/questions/9784175/…查看我的回答
标签: ios objective-c xcode autocomplete syntax-highlighting