3

在网上看(https://github.com/Musixmatchdev/ObjectiveHeaders/blob/master/Headers/iPhoneOS6.0.sdk/UIKit/UIBarButtonItem.h)我发现 UIBarButtonItem 实现了 nextResponder选择器。

但是,这不是 UIBarButtonItem 的公共 API 的一部分,而是在 UIResponder 类中(遗憾的是 UIBarButtonItem 没有继承自该类)。

我被授权使用它还是被 Apple 拒绝?(我会在 Apple 论坛上问过,但我相信它会下降一段时间:)

非常感谢,

杰克·帕德希

4

2 回答 2

0

好的,我找到了针对我的特定问题的解决方案:

我将调用转发到 [[UIApplication sharedApplication] sendAction:to:from:forEvent:]] 选择器,后者又(使用 from 参数)使用 UIBarButtonItem nextResponder。所以这是使用公共 API 对它的间接引用。

但是我认为 Apple 只是在此方法中的 id 参数上使用了 respondsToSelector:@selector(nextResponder) 。因此,在自定义代码中做同样的事情(编写一个采用 id 参数然后调用 nextResponder 的方法)也可能是使用 nextResponder 选择器的解决方案,但不会被视为使用私有 API,但这只是一个假设。

于 2013-07-25T10:18:18.990 回答
0

可悲的是,UIBarButtonItem 是基于残缺的 UIBarItem,它们都没有实现 nextResponder 方法。因此,它被视为私有(非公共)API,并且根据Apple App Store 审查指南pt.2.5,“使用非公共 API 的应用程序将被拒绝”。

注意:Apple Developer 门户现已关闭,但可以在网上轻松找到该指南

PS 请描述使用 UIBarButtonItem 的 nextResponder 的原因 - 我确信有不止一种方法可以实现它。

于 2013-07-23T18:46:32.447 回答