为了编译一个简单的基于窗口的项目而绞尽脑汁。
我正在运行 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安装程序,没有区别。
我完全陷入困境,因为我的项目在模拟器和外部设备上都工作和编译得很好。
当项目无法编译时,是否有修复或重建项目的最佳实践或建议步骤?
欢迎任何帮助!
确保您的应用程序已链接至
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。
请注意 - 我在这个问题上挣扎了一段时间,发现这是因为我没有将“QuartzCore”框架导入到我的项目中。
HTH.
CATransition 在旧版本的操作系统(4.0 之前)中可能不可用。 你基本上有 3 个选择:
1)重写处理 CATransition 的部分以不使用它(或 4.0 之前的 iOS 版本不可用的其他内容)
2)编写代码,在编译时或运行时选择正确的行为来使用 CATransitions 或禁用该功能,或者以不同的方式实现它(请参阅 Apple 的 iPad 开发指南 - 它展示了涉及 NSClassFromString 的非常有用的技术)
3)针对更高版本的操作系统
你可能想选择#3