2009-11-17 32 views

回答

6

您可以审核代码。

  1. 首先确保项目编译没有警告。这意味着他们使用的所有方法都必须在其头文件中声明。
  2. 然后查看代码中声明的所有类别(您可以自己做这个,或者找一些工具来做到这一点)。
  3. 对于由所有Apple框架提供的类声明的所有类别,确保它们在代码中声明的方法具体实现。如果Apple提供的类中没有任何类别没有框架提供的具体实现,那么它们将声明该类别以避免编译警告访问私有方法。
  4. 查找调用NSClassFromString,并确保它的所有用途是公共类

有他们可以使用私有API的一些其他的方式,但他们并不常见,而且往往所致人们积极试图混淆他们正在做的事情。

多了几分点:

我审计YAJL-objc自己,我相信乔恩是做什么不好的TouchJSON,因为他是该死的罚款iPhone开发者。除此之外,我不明白为什么会有任何JSON库,隐藏在私有API中几乎没有任何东西可以使用。使用私有API来实现视觉效果与未暴露的硬件功能的接口往往更为常见,解析实际上只是计算。

1

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

至于检测私有API-s的使用,你可以看看this问题的几个可能的解决方案。

0

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

+0

“所有”除了在这篇文章中提到的两个?!? – Meltemi 2009-11-17 20:41:52

+1

“查看全部”并不意味着该网站列出了所有曾经写过的网站。 – 2009-11-17 20:45:13

0

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

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

0

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

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