可以为 os 2.x 和 3.x 制作通用二进制文件,您可以查看MFMailComposer 的示例代码但是如何为 iOS4 和 iOS3 以及 XCode 3.2.3 制作它?
问问题
3002 次
1 回答
3
是的,有一些关于这个过程的文档,但是如果你想实例化一个可能不存在的类,你必须先测试。
如果您在没有该类的情况下在 3.x 上运行,则使用 NSClassFromString 会返回 null,如果在更高版本的操作系统上运行时该类存在,则返回一个可用于分配新实例的类。通过这种方式,您可以测试和回退到 3.x 代码并利用 4.x 类和功能(如果可用)。
确保针对较新的 (4.x) 库进行编译,同时将目标操作系统设置为较低的 (3.x),以便可以在代码中强制转换新类而不会出现编译时警告。
如果您想使用新的 API 或支持 API 的更改,您可以使用 respondsToSelector 测试方法是否存在,并可选择通过 performSelector 等触发该方法。
有许多不同的情况,但想法围绕设置目标操作系统和测试运行时事件,以便回退或避免仅在以后的操作系统中可用的功能
例如,您可能会检查 UILocalNotification 类的存在,如果它可用,则在工具栏上放置一个按钮,如果它不存在,则不存在 - 因此完全避免了在运行时会崩溃的代码。
于 2010-06-19T16:10:24.017 回答