我对 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/