53

我已经阅读了几篇关于此的文章,我只是想看看我是否理解正确:

如果您使用私有 API,Apple 将拒绝您的应用程序...

  1. “私有 API”和“非私有 API”之间的主要区别是什么?

  2. “非私有”API 是否只是 Apple 提供和验证的 API?

  3. API 不只是与框架交互的一种方式,框架只是一组封装的类/头文件,人们可以将它们用于琐碎的目的吗?

  4. 这是否意味着我不能在我的应用程序中重用任何人的代码(Apple 除外)?

  5. 如果这是真的,那么每当程序员制作他或她自己的自定义类和方法时,他在技术上不就是为了他的特定目的而设计一个迷你框架吗?那么这不是说他在使用自己的私有 API 吗?

  6. 使用别人的类/方法和我的类/方法之间有什么区别,他们怎么能分辨出区别,为什么这会是个问题?

我对此的理解听起来很荒谬,并且不相信我正确理解了“私有 API”的含义。我确实读到它是为了防止 API 中可能导致您的应用程序功能失调的任何更改。这是否意味着 API 在运行时(而不是编译时)是链接的,并且可以在您不知情的情况下自动更新?(看,我最初认为 API/框架在你编译时是一成不变的,也许这就是我错的地方)

有人可以帮我吗?我真的对这个政策感到困惑。谢谢!

4

1 回答 1

52

:“私有 API”和“非私有 API”之间的主要区别是什么?

  • Private 是未公开定义的(没有太多内容)

:“非私有”API 是否只是 Apple 提供和验证的 API?

  • 私有和公共 API 均由 Apple “提供”,但仅提供公共 API 供您使用。
  • 私有 API 仅供 Apple 使用

:API 不只是与框架交互的一种方式,框架只是一组封装的类/头文件,人们可以将它们用于琐碎的目的吗?

  • 是的

:这是否意味着我不能在我的应用程序中重用任何人的代码(Apple 除外)?

:如果这是真的,那么每当程序员制作他或她自己的自定义类和方法时,他在技术上不就是为了他的特定目的而设计一个迷你框架吗?那么这不是说他在使用自己的私有 API 吗?

  • 否(框架与应用程序不同)

:在使用别人的类/方法和我的类/方法之间会有什么区别,他们怎么能分辨出区别,为什么这会是个问题?

  • 通常不会

您需要了解的一点是,在提及私有 API 时,您应该只考虑 Apple 提供的私有 API。
来自第 3 方的其他 API 是不同的(只要第 3 方代码不使用 Apple 私有 API,Apple 就不会在意)。

于 2013-07-10T20:29:39.693 回答