Ios Xcode 4.x中的代码自动完成/语法突出显示问题
在我的一个项目中,我在Xcode中遇到了一个相当奇怪的问题 当我开始写我的代码时,我习惯于自动完成,为我建议了许多条目。出于某种原因,从昨天起,这项工作就停止了。我现在得到奇怪的自动完成条目,如“and”、“the”、“Andy”、“MyCompanyName”等 这以前从未发生过,所以我很困惑为什么现在会发生,而且只发生在我的一个项目上。我在这个网站上搜索了相当长的一段时间,试图清理派生数据,退出Xcode,从Xcode项目中删除工作区和用户文件并重新启动,但在这样做之后,自动完成功能会运行一段时间,然后在大约30秒的编码后再次中断 我有时可以看到自动完成的解决方案,但只有纯文本(没有类指示符),然后其他时候它完全停止工作Ios Xcode 4.x中的代码自动完成/语法突出显示问题,ios,xcode,autocomplete,auto-populate,Ios,Xcode,Autocomplete,Auto Populate,在我的一个项目中,我在Xcode中遇到了一个相当奇怪的问题 当我开始写我的代码时,我习惯于自动完成,为我建议了许多条目。出于某种原因,从昨天起,这项工作就停止了。我现在得到奇怪的自动完成条目,如“and”、“the”、“Andy”、“MyCompanyName”等 这以前从未发生过,所以我很困惑为什么现在会发生,而且只发生在我的一个项目上。我在这个网站上搜索了相当长的一段时间,试图清理派生数据,退出Xcode,从Xcode项目中删除工作区和用户文件并重新启动,但在这样做之后,自动完成功能会运行一
有没有其他人经历过类似的情况并能提供一些解决方案?您可以通过以下方式解决此问题:
现在,您应该能够看到正确的语法突出显示,并且自动完成应该是正确的。我在一个项目中经历了很长一段时间,该项目一直在丢失自动完成和语法突出显示。删除派生数据文件夹并重新启动Xcode会暂时修复它,最终几乎变成肌肉记忆。我的问题似乎因为使用包含多个项目的工作区而恶化,其中许多项目相互依赖。原来问题出在叮当声索引器上。该项目可以干净地编译,但从索引器的输出来看,它充满了错误。解决了所有这些问题 在做任何事情之前:确保ALL工作区中项目的目标编译干净。没有任何警告。这对我来说是一个巨大的失败——我有一些旧的目标,只是没有干净地编译。其中一些是未使用的,可以删除,另一些是非ARC,使用已转换为ARC的目标中的模块(也转换了这些目标),还有一些只是需要代码修复 一旦您解决了所有这些问题,我们需要知道的第一件事是索引器在哪里失败,对您的项目进行完整的索引
- 首先,确保Xcode已关闭,然后打开索引器警告
在终端中输入消息级别:
defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3
- 然后找到您的项目/工作区的派生数据文件夹(可能是~/Library/Developer/Xcode/DerivedData/您的项目名称有点胡言乱语),并将其删除(但保持派生数据文件夹打开,因为您可能需要返回并执行几次)
- 接下来,打开Console应用程序并单击Clear Display,然后将过滤器设置为“IDE”,以仅显示我们感兴趣的消息
- 最后,打开Xcode和导致问题的项目/工作区,您将看到控制台开始充满消息
- 要查找错误,请将控制台过滤器更改为“error:”——我们的目标是将这些过滤器减少到零
- 我发现的大多数错误都缺少头文件。Xcode本身似乎比索引器更聪明。它似乎能够找到并包含索引器无法找到的其他项目的头文件
- 因此,无论您在哪里看到“致命错误:'somefile.h'未找到文件”,确保将该文件的路径添加到目标的生成设置中的用户标题搜索路径中。我发现最好的方法是双击该字段以获得弹出窗口,并将文件夹从查找器拖动到其中。这会添加一个新条目,但假设它位于同一工作区中,则会添加一个相对文件路径(这在将来移动工作区文件夹时很重要)。如果同一项目有多个目标,则可以在项目而不是目标级别设置搜索路径,并将目标搜索路径设置为$(继承)
- 您可能会在库或框架中遇到类似的问题—同样,请更新相应的搜索路径
- 一旦修复了一些错误,关闭Xcode,清除控制台,删除项目的派生数据,打开Xcode并让它再次索引
- 重复,直到你所有的错误都消失
一旦你到了这个好地方,代码自动完成和语法高亮显示应该会像一个符咒一样工作:)在Xcode 4.3.2上偶尔也会发生在我身上 我只是这样做: Xcode>Organizer>Projects>选择您的项目>派生数据>单击删除按钮 这也会删除索引。然后,我通常会重新启动Xcode,它会开始重新索引,然后我会再次获得语法高亮显示和自动完成。(我甚至不总是重新启动Xcode-但对于你的glazballs来说,找个借口在屏幕前休息几个小时总是一件好事!)
这种情况很少发生,这相对来说比较轻松。大多数时候,我遇到这个问题,删除DerivedData可以帮我解决问题,但有一种情况没有解决。结果是,我无法将我创建的源文件连接到任何特定目标。一旦我将其连接到目标源,高亮显示就开始工作。如果其他解决方案没有这样做工作,这可能是你的问题 在生成设置中搜索“GCC\u增加\u预编译\u头\u共享” 把它改成是的-这对我有用
这真的很尴尬。我错误地去掉了Xcode首选项>文本编辑>代码完成中的复选标记,并尝试了所有可能的解决方案 请检查此首选项