我对 Objective-C 相当陌生,并且对“私有(private) API”的下层可能导致 Apple 拒绝我的应用程序的内容感到困惑。这是否包括向现有类添加方法?例如,我在 stackoverflow 上找到了一些代码,用这个对 UITabBarItem 类的扩展来为 UITabBars 的标签栏图标重新着色。这是否被视为“私有(private) API”?如果不是,有什么作用?

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

最佳答案

上面可能是一个 Objective-C category ,它使用新方法扩展了 UITabBar 类。这是完美的犹太洁食。您甚至可以使用类别覆盖现有方法,尽管不建议这样做。

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

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

关于ios - 什么构成 iPhone 应用程序中的私有(private) API?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2791381/

10-12 00:40
查看更多