我在Xcode 4中运行一个“旧的”Xcode 3项目,代码意义不适用于我自己的类。我试过以下:
没有运气。
有时代码意义有效但主要是我得到“没有完成”。
答案 0 :(得分:128)
试试这个:
打开管理器,然后打开项目标签。
清除“派生数据”。 Xcode应该重新索引你的项目,代码意义应该工作。至少为我工作。
答案 1 :(得分:108)
我知道这已经晚了,但供参考:http://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/
关闭项目,让XCode仍在运行。
打开XCode的管理器窗口,转到“项目”选项卡,选择正确的项目,然后点击“派生数据”旁边的“删除”按钮。
退出XCode。
在Finder中导航到项目的.xcodeproject文件。右键单击,选择“显示包装内容”。
保留project.pbxproj文件,但删除project.xcworkspace文件,任何.pbxuser文件和整个userdata文件夹。
在XCode中打开项目。您将看到XCode在CPU使用率上高达10-60秒,具体取决于项目的大小。活动窗口将显示“索引”
当您的CPU峰值返回地球时,代码完成将再次运行。
那里有很多删除,所以请小心,但这对我有用。
答案 2 :(得分:26)
我一直这样做,并且它已经多次为我工作了(在完成上述所有操作之后)。
编辑:现在我只是点击空格,退格(mac版本)并重建......效果很好。然后,记得滚动(有时在你滚动某处之前颜色不会显示)
我只打赌第2步(修改前缀)就是这样,但这些基本上会让你恢复运行。突然间,一切都神奇地重新出现并完成了功能。
如果不能解决它,祝你好运,也许尝试对你的依赖pch文件(three20或FB api)执行此操作
答案 3 :(得分:5)
清除“派生数据”仅适用于我。我必须这样做,然后每天重启Xcode 3-4次,以使代码感觉再次起作用。
我发现真正的原因是在目标的构建设置中。我将所有内容从标题搜索路径移动到用户标题搜索路径,并且已修复。就我而言,我正在使用的框架是RestKit。
顺便说一下,我想出了这个,因为我在项目中添加了另一个项目(QuickDialog),我很好奇它正在使用用户标题搜索路径,但不是标题搜索路径。 Here is the difference between them.答案 4 :(得分:4)
您可以通过更改构建设置来修复该问题, PreCompile Prefix标题:否
答案 5 :(得分:3)
仅供参考,如果一个文件没有代码意义但项目的其余部分没有,请检查它是否已添加到目标。一旦我这样做,我就会在该文件中获得代码感。
答案 6 :(得分:2)
已经很久了,但答案只是将代码移动到一个新文件夹中,代码意义应该正常工作。
当我添加一个新的Objective-C类并且代码检测不仅对新添加的.m和.h文件(在此帖子中的XCode 4最新更新)上有效时,就会发生这种情况。
答案 7 :(得分:2)
关闭所有xcode窗口
从xcode>窗口>管理器中删除所有项目,然后重新启动项目。它现在可以正确地感知和索引您的项目。
答案 8 :(得分:1)
我详细地写了here。
基本上我的解决方案是本地化。我从xcode 3.2.5升级到xcode 4,然后使用内置的界面构建器搞砸了,并且意外地打开了一个XIB文件的本地化,这将我的源文件放在en.lproj目录中。将它们移回Classes文件夹后,效果非常好。
答案 9 :(得分:0)
再次,为了帮助其他人解决这个问题,在我的情况下,在升级到Xcode 4.3时发生了。
当然,我尝试了这篇文章中提供的解决方案,但没有一个能够奏效。但是在Finder中移动项目位置的建议带回了一些Code Sense,但这些建议没有任何意义。我最终删除了我的项目,并从git存储库中重新克隆了它。。这对我来说代码感觉...
答案 10 :(得分:0)
每当我的Xcode的代码感应停止工作时,我会在后台打开第二个项目(它通常在我第一次打开项目时工作,但在一段时间后代码感觉不再有效)。所以我要做的是在Xcode中打开第二个项目。 Xcode将开始为第二个项目编制索引,并且神奇地为我的主项目提供代码意义。
在Lion上运行Xcode 4.3.1
希望这有助于某人。
答案 11 :(得分:0)
从this comment here我能够在我的最终调试问题,它似乎是一个坏的-w标志,clang预处理器无法正确识别。基本上,正在运行
defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3
增加了索引器的详细程度,应该可以帮助您跟踪问题。打开Console.app并查找来自Xcode的消息,搜索字符串IDEIndexingClangInvocation
帮助我找到它们。
答案 12 :(得分:0)
对我来说,这只是因为该文件没有目标成员资格。如果前几个答案对你不起作用,请转到.m文件(可能是你遇到问题的这个文件),打开 Utilities 视图(编辑 - >实用程序 - &gt ;显示文件检查器)并在“目标成员资格”下检查您希望此文件所属的目标。