修复无法编译的项目的步骤

时间:2010-06-16 03:15:52

标签: objective-c iphone xcode debugging compiler-construction

试图让一个简单的基于窗口的项目进行编译,拉出我的头发。

我正在运行Xcode的3.2.2和3.2.3版本。 后者设置在一个单独的文件夹中。

最初我使用后者来创建和编译我的项目对新的4.0 sdk。它汇编得很好。 然后我错误地删除了一些我认为不再需要的sdks。

自从我无法再编译。

现在我得到了十几个类似于以下的错误   “_OBJC_CLASS _ $ _ CATransition”,引自: ViewTransitionsAppDelegate.o中的objc-class-ref-to-CATransition

我的活动可执行文件是iphone模拟器4,Base SDK是iPhone设备3.0。

我尝试重新安装xcode3.2.3安装程序,没有区别。

我完全陷入困境,因为我的项目工作和编译都很好,无论是模拟器还是外部设备。

当项目无法编译时,是否有修复或重建项目的最佳实践或建议步骤?

欢迎任何帮助!

3 个答案:

答案 0 :(得分:6)

确保您的应用程序与QuartzCore.framework相关联,并且无论您在何处使用CATransition,都要导入CoreAnimation标头:

#import <QuartzCore/CoreAnimation.h>

否则,我建议您从系统中完全删除所有Xcode / Dev Tools安装(彻底清除)并重新安装最新的SDK。

编辑:还忘了提到最新的iPhone SDK(iOS 4),至少对我来说,不包括以前版本的iPhone SDK。它只包含3.2和4.0 SDK,因此您必须编辑应用程序的目标/项目设置才能使用iPhone SDK 4.0。

答案 1 :(得分:1)

就像一个注释 - 我有点挣扎,发现这是因为我没有将“QuartzCore”框架导入到我的项目中。

HTH。

答案 2 :(得分:0)

旧版本的操作系统(4.0之前版本)可能无法使用CATransition。你基本上有3个选择:

1)重写处理CATransition的部分不使用它(或其他任何不适用于4.0之前版本的iOS版本)

2)编写代码,无论是在编译时还是运行时,选择正确的行为来使用CATransitions或禁用该功能,或者以不同的方式实现它(参见Apple的iPad开发指南 - 它显示了一个涉及NSClassFromString的非常有用的技术)

3)瞄准后来的操作系统

您可能想要使用#3