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

问题描述 投票:0回答:3

为了编译一个简单的基于窗口的项目而绞尽脑汁。

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

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

自从我无法再编译了。

现在我收到十几个类似以下内容的错误 “_OBJC_CLASS_$_CATransition”,引用自: ViewTransitionsAppDelegate.o 中的 objc-class-ref-to-CATransition

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

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

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

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

欢迎任何帮助!

objective-c iphone xcode debugging
3个回答
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
投票

请注意 - 我在这个问题上挣扎了一段时间,发现这是因为我没有将“QuartzCore”框架导入到我的项目中。

HTH.


0
投票

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

1)重写处理 CATransition 的部分以不使用它(或 4.0 之前的 iOS 版本不可用的其他内容)

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

3)针对更高版本的操作系统

你可能想选择#3

© www.soinside.com 2019 - 2024. All rights reserved.