gpt4 book ai didi

ios5 - 集成报亭而不破坏向后兼容性

转载 作者:行者123 更新时间:2023-12-03 01:51:53 24 4
gpt4 key购买 nike

我正在研究将 Newsstand 集成到新的 iOS 应用程序中,并想知道我是否可以以一种仍允许该应用程序在尚未迁移到 iOS 5 的设备上运行的方式实现这一点。

任何人都可以给我一些有关如何构建应用程序来处理此问题的反馈吗?

我知道单个应用程序可以具有不同的目标和源文件集,但我更愿意保持代码库尽可能统一,并动态测试报亭功能。

最佳答案

首先,您必须将您的应用程序弱链接到 NewsstandKit 框架。这可以避免 iOS 版本 < 5 的设备因缺少库而崩溃。

然后在运行时,您需要避免调用 NK 方法并引用 NK 类,这显然在 iOS < 5 中不可用。在这种情况下,您可以使用 NSClassFromString() 或其他允许检测的 obj-c 运行时功能等方法这些功能的存在是动态的。

在这种情况下,我可以做的一个建议是提供一个预编译器指令,允许您在编译级别隔离所有报亭内容。通过这种方式,您可以尝试使用 SDK 4(如果有)进行编译,并查看编译器错误或警告。

例如如果你在 Prefix.pch 中添加这样的定义


#define WILL_USE_NK

然后你可以用这种方式将所有 NK 引用括起来:


#ifdef WILL_USE_NK
... your NK statements go here ...
#endif

稍后,当您使用 SDK4 编译应用程序时,您将保留此定义,这样您将获得对 iOS4 设备有效的真正 SDK4 编译(您可以测试),并且您将确保所有 NK 引用都不会被iOS4应用程序。然后,在分发应用程序之前,您必须 #undef 这个定义并使用 SDK5 进行编译(当然保留一些 iOS 4.x 作为最低目标)。

当然,通过这种方式您并不能避免所有可能的错误,但至少您已经隔离了 NK 引用。

至于应用程序业务逻辑的更好策略,这取决于您:这不是一件容易的任务,因为现在报亭负责很多方面,例如后台下载等。此外,杂志模型现在分为现有模型和 NKIssue 功能,但所有这些都是超出此特定问题的实现细节。

关于ios5 - 集成报亭而不破坏向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com