将新的 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的主要内容,如果未能解决你的问题,请参考以下文章