【问题标题】:JSON framework w/o hidden APIs?没有隐藏 API 的 JSON 框架?
【发布时间】:2009-11-17 19:21:01
【问题描述】:

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

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

【问题讨论】:

    标签: iphone objective-c cocoa-touch xcode


    【解决方案1】:

    您可以审核代码。

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

    他们可以通过其他一些方式使用私有 API,但它们并不常见,并且往往是由于人们积极试图混淆他们正在做的事情造成的。

    更多点:

    我自己审核了YAJL-objc,我确信 Jon 在TouchJSON 中没有做坏事,因为他是非常优秀的 iPhone 开发人员。除此之外,我看不出为什么会有任何 JSON 库,在私有 API 中几乎没有他们可以使用的东西。更常见的是使用私有 API 来实现视觉效果是与未暴露的硬件功能的接口,解析实际上只是计算。

    【讨论】:

      【解决方案2】:

      还有TouchJSONthis 问题的公认答案表明这是最值得信赖和经过充分测试的答案之一。

      至于检测私有 API-s 的使用,您可以查看this question 以获得一些可能的解决方案。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • “所有”除了这篇文章中提到的两个之外?!?
        • “查看全部”并不意味着该站点列出了所有已编写的内容。
        【解决方案4】:

        寻找开始添加描述性文本的项目,以验证他们不使用私有 API,也不打算这样做。

        这是一个有趣的问题,因为 Three20 并不是第一个遇到这种情况的库。没有什么比自己快速查看代码更好的了。

        【讨论】:

          【解决方案5】:

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

          这主要取决于json源的复杂程度。 典型的 C/c++ impelmentations 往往效率更高,关于您关于私有 API 的问题。只要您复制/过去的来源,您就确定您没有使用私有 api。

          【讨论】:

            猜你喜欢
            • 2017-12-22
            • 2013-02-10
            • 2012-07-21
            • 2017-07-06
            • 2022-11-26
            • 2015-03-21
            • 2011-06-17
            • 2011-03-11
            • 2020-05-15
            相关资源
            最近更新 更多