将新的 Apple Framework 类适配到以前的 iOS SDK

Posted

技术标签:

【中文标题】将新的 Apple Framework 类适配到以前的 iOS SDK【英文标题】:Adapt a new Apple Framework class to a previous iOS SDK 【发布时间】:2011-11-10 16:56:29 【问题描述】:

我正在使用一个新的 API 类,NSJSONSerialization,尤其是以下方法:

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

我想尽可能地坚持使用 Apple 提供的工具,但该课程仅适用于 ios 5。

有没有办法为 iOS 4 重新实现类及其方法,以便它可以使用完全相同的调用方法调用外部 JSON 框架 (JSONKit)?

id result = [NSJSONSerialization JSONObjectWithData:myData options:0 error:nil];

如果我创建一个具有相同名称的类(NSJSONSerialization),它将无法编译(重复接口)。

我也无法创建类别,因为它在 iOS 4 上不可用,它会简单地忽略任何与 NSJSONSerialization 相关的调用。

有什么帮助吗?

【问题讨论】:

那为什么不使用 JSONKit 呢? 因为就像我说的,我想尽可能地坚持使用 Apple 提供的工具。但是,是的,我想坚持使用 JSONKit 会更简单...... 【参考方案1】:

IMO 你应该创建你的 on JSON 类并在其中检查 NSJSONSerialization 是否存在并使用它,否则回退到 JSONKit。

查看此AFNetworking implementation 了解想法

【讨论】:

好的。我想到了,但我想知道是否有另一种解决方案,比如为早期的 SDK 自己实现 NSJSONSerialization。 我认为自己重新实现标准 API 不是一个好主意。它会让你的代码更加混乱,而且没有明显的好处。

以上是关于将新的 Apple Framework 类适配到以前的 iOS SDK的主要内容,如果未能解决你的问题,请参考以下文章

C++ 将新的类对象添加到数组中的新位置

如何使用 php 类 DOMDocument 将新的 xml 节点附加到现有的 .xml 文件?

如何将新值推送到 Store 对象?

IDEA插件系列(31):Legacy Icon Pack for 2018.​2+​插件——将新的单色图标更改为彩色的旧图标

Apple CI / Xcode 服务和 Jenkins

新的 iOS 应用程序是不是需要适配 iPhone 6 和 6+?