没有隐藏API的JSON框架?

时间:2009-11-17 19:21:02

标签: iphone objective-c cocoa-touch xcode

考虑到隐藏API和Apple现在在向应用程序商店发布任何内容之前检查它们的所有问题,您如何确定特定框架是否使用隐藏API?例如,我喜欢Google JSON框架:http://code.google.com/p/json-framework/。我不知道他们是否使用隐藏的API。

JSON还有什么可以肯定的是没有使用隐藏的API?

5 个答案:

答案 0 :(得分:6)

您可以审核代码。

  1. 首先确保项目编译时没有警告。这意味着他们使用的所有方法都必须在其标题中声明。
  2. 然后查看代码中声明的所有类别(您可以自己执行此操作,或者找一些工具来执行此操作)。
  3. 对于在所有Apple框架提供的类上声明的所有类别,请确保它们在代码中声明的方法的具体实现。如果Apple提供的类中没有任何类别没有框架提供的具体实现,那么他们就会声明该类别,以避免编译警告访问私有方法。
  4. 查找对NSClassFromString的调用,并确保它对公共类的所有使用
  5. 他们可以使用私有API的其他方式,但它们并不常见,往往是由积极尝试混淆他们正在做的事情的人造成的。

    关于这一点:

    我自己已经审核了YAJL-objc,我确信Jon在TouchJSON中没有做任何坏事,因为他是一个非常好的iPhone开发者。除此之外我无法理解为什么有任何JSON库,他们几乎没有什么可以隐藏在私有API中。使用私有API实现视觉效果往往更常见的是与未暴露的硬件功能的接口,解析实际上只是计算。

答案 1 :(得分:1)

还有TouchJSON。对this问题的接受答案表明,这是最值得信赖和经过充分考验的问题之一。

至于检测私有API的使用,您可以查看this问题,了解几种可能的解决方案。

答案 2 :(得分:0)

查看json.org列出的所有库。

答案 3 :(得分:0)

寻找项目开始添加描述性文本,验证他们不使用私有API,也不计划。

这是一个有趣的问题,因为Three20并不是第一个发生这种情况的图书馆。没有什么比你自己快速审查代码了。

答案 4 :(得分:0)

我同意JSon解析有很多解决方案,但编写自己的解决方案非常简单。

它主要取决于json源的复杂程度。 典型的C / c ++推动往往很有效率,并且关于私有API的问题。只要你复制/过去来源,你就确定你没有使用私人api。