子视图可以算作在iOS中使用未记录的API吗?

时间:2011-03-24 08:27:29

标签: ios api

使用(例如)UIWebView的子视图是否算作使用未记录的API?没有关于UIWebView的第一个子视图是UIScrollView这一事实的文档。这是否意味着我不允许将儿童添加到此UISCrollView

我没有使用任何私人电话,但在任何地方都没有记录。在iOS 3.1中,UIWebView的第一个子视图是名为"UIScroller"的类的实例,它几乎与UIScrollView相同,但未在任何地方记录。准确的是什么?

2 个答案:

答案 0 :(得分:3)

来自UIView Class Reference

  

对于在UIKit中声明的复杂视图   和其他系统框架,任何   一般来说,视图的子视图   被视为私人和受制于   随时改变。所以,你   不应该试图检索或   修改这些类型的子视图   系统提供的视图。如果你这样做,你的   代码可能会在未来的系统中中断   更新

来自App Store Review Guidelines

  

不使用系统提供的应用   项目,如按钮和图标,   正确地并且如在中所述   Apple iOS人机界面指南   可能被拒绝

总而言之,我读到了这些说法:你可以看一下标准组件的子视图,但是在你自己的危险中弄乱它们 - 事情会随着变化而不加注意,而你自己也没有人会受到责备他们打破。此外,如果您修改标准组件的方式与Apple设计和用户期望的方式不一致,您的应用可能会被拒绝。

修改UIWebView的私有子视图似乎是一个糟糕的计划。

答案 1 :(得分:2)

我认为它不像使用私有API(如果我错了就纠正我),但我不推荐它。正如你所说:“在iOS 3.1中”它的工作方式是这样的,但不能保证在其他版本上的工作方式相同。它可能随更新而改变,应用程序将中断。

顺便说一下,很少有人使用iOS 3.1,所以我建议在4.3中查看它是如何工作的。

编辑:我从来没有将应用程序上传到我已经完成此操作的应用商店,但我可以告诉你很多:你没有向Apple提交任何源代码。他们在一个工具中运行您的可执行文件,该工具将检测您是否调用任何私有API方法。

允许循环浏览子视图。添加子视图也是如此。他们甚至没有在guidelines中提到这一点。我无法做出任何保证,因为我没有参与Apple的审核流程,但如果因为这个原因拒绝你的应用程序,我会感到非常惊讶。

如果您觉得它会为您的应用增加价值,我会继续这样做。如果您将应用程序提交到应用程序商店并获得批准,请返回并发表评论。