【发布时间】:2012-08-14 06:47:55
【问题描述】:
哇,这太令人沮丧了。
最近升级到 OS X 10.8 和 Xcode 4.4.1 当 Xcode 似乎忘记了符号和方法时,我工作得很好。它开始认为有很多东西没有定义、声明、合成等,而实际上它们都很好(项目构建得很好,在某些情况下,符号就在文件中)。此外,问题的数量也在跳跃。通常它会在一个文件(AppDelegate)中发现 4 个问题,但是如果您查看其中任何一个错误,它会迅速将问题提升到 13 或 14 个。这些较新的问题似乎主要是您在不导入头文件时遇到的类型但这从来都不是问题。
在 SO 中环顾四周,我发现有时人们会清除 DerivedData 文件夹或其他各种技巧。我创建了一个 DerivedData2 文件夹并指向它,但这并没有解决问题。
我正在使用 git,但没有经常致力于退回到理想的点(工作会丢失/是的,吸取的教训)。我也在 SO 上读到,有时是 git 文件会混淆。
对不起,这太笼统了。关于重置什么/如何重置以消除 Xcode 的困惑有什么建议吗?我希望这不是 Xcode 4.4.1 的特性!我不排除这是我做过的事情......但我认为值得询问 Xcode 问题以及人们如何处理这些问题。
编辑: @Abizem 的把戏帮了大忙。现在我真的只剩下一个问题,所以我可以深入了解细节。请记住,这段代码运行良好,只是停止了。在 AppDelegate 我有 .h:
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tbc;
@end
然后在.m中
@implementation AppDelegate
@synthesize window = _window;
@synthesize tbc = _tbc;
好像有错别字,但我不这么认为。我得到的错误是Property implementation must have its declaration in interface 'AppDelegate' 指向@synthesize tbc 行。没有比这更基本的了。为什么 Xcode 不能识别这个?
编辑 2: 注释掉 @synthesize 的 window 和 tbc,以下几行都抱怨 property tbc not found on object type AppDelegate *。顺便说一句,这些问题在我发表评论之前就已经存在,我认为它们与关于 property declaration... interface 的投诉有关,并且在修复后会消失,但显然不是。 Xcode 根本不知道tbc 的位置/内容。没有覆盖这些对象的任何方法。我一定有一个恶作剧!
self.tbc = [[UITabBarController alloc] init];
self.tbc.viewControllers = [NSArray arrayWithObjects:gameVC, settingsVC, helpVC, nil];
self.window.rootViewController = self.tbc;
【问题讨论】:
-
一个干净的构建通常会修复它。
-
@Abizern 我应该提到我定期清理项目。在这种情况下,它没有任何改变。有没有办法在产品 -> 清洁之外进行清洁?谢谢。
-
尝试按住 alt 键,它会进一步删除构建文件夹。
-
@Abizem 谢谢你的提示。我读过有人可以删除该文件夹,但找不到如何删除。所以很高兴知道这一点。现在,采取这一行动似乎确实解决了大约 90% 的问题,但仍然存在 4 个问题。这些实际上是同一个问题,它没有识别明显存在的财产声明。我得深入研究一下,稍后再报告。
-
如果您使用 LLVM4 作为编译器,则不需要两个 @synthesize 行。删除它们,看看是否还有问题(可能是文件中的其他内容,这将有助于显示)
标签: xcode