【问题标题】:What constitutes a private API in an iPhone app?什么构成 iPhone 应用程序中的私有 API?
【发布时间】:2010-05-07 20:07:15
【问题描述】:

我对 Objective-C 还很陌生,对可能导致 Apple 拒绝我的应用程序的“私有 API”的范畴感到困惑。这是否包括向现有类添加方法?例如,我在 stackoverflow 上找到了一些代码,用于为 UITabBars 的标签栏图标重新着色,并将此扩展名添加到 UITabBarItem 类。这是否被视为“私有 API”?如果不是,那是什么?

@interface UITabBar (ColorExtensions)
- (void)recolorItemsWithImage:(UIImage *)image shadowColor:(UIColor *)shadowColor shadowOffset:(CGSize)shadowOffset shadowBlur:(CGFloat)shadowBlur;
@end

【问题讨论】:

    标签: ios objective-c app-store


    【解决方案1】:

    不,用户代码添加的类别不是“私人的”。私有 API 是 Apple 的内部 API,未记录在案。如果方法不在头文件中并且不在开发人员文档中,则它们是私有的。 (根据经验,如果您没有收到任何编译器警告,则说明您没有使用私有 API。)

    【讨论】:

      【解决方案2】:

      上面可能是一个Objective-C category,它用新方法扩展了UITabBar 类。这完全符合犹太教规。您甚至可以使用类别覆盖现有方法,但不建议这样做。

      一般来说,私有方法前面通常会有下划线。您也不想使用 Apple 为大型 UI 对象保留的私有类,例如 UIWebView 中的私有组件。你不想使用这些,否则你的应用会被拒绝。

      您在项目框架的头文件中看到的任何内容都是“公开的”且可用的。无论如何,如果您真的想了解有关该课程的所有信息,最好翻阅标题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-22
        • 1970-01-01
        相关资源
        最近更新 更多