objective-c - Objective C 关于类别的解释?

标签 objective-c categories private-methods class-extensions objc-category

在我的菜鸟思维和程序中,当我为类创建类别时,我会在新文件中创建它

NSArray+Shuffle.h和.m

但我注意到,当我创建一个 ViewController 时,

我在实现中:

@interface PingusViewController ()

@end

@implementation PingusViewController
...
@end

所以我的问题是:

什么是

@interface PingusViewController ()

@end

部分?,这是用于类别的吗?或者有什么用?,如果它用于类别,为什么在这里使用它而不是在一些新文件中?

谢谢!

最佳答案

它称为类扩展

将其视为类私有(private)声明的常规位置。

它通常在实现文件而不是头文件中声明,因为声明被视为私有(private),并且仅对类的 @implementation 可见。

类别 OTOH 是作者通常用来扩展类的公共(public)接口(interface)的接口(interface)。声明是相似的——毕竟,类扩展只是一个未命名的类别,但应用程序是不同的(按照惯例)。

关于objective-c - Objective C 关于类别的解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10100504/

相关文章:

javascript - Private V.S. 令人困惑的例子<Javascript Patterns> 书中的公共(public)方法?

javascript - 为什么要使用私有(private)函数?

ios - 在框架中查看 Controller 生命周期方法回调?

iphone - 类别授权

Joomla 通过电子邮件通知用户新文章

magento - 添加启用所见即所得的类别属性

Ruby module_function,调用模块的私有(private)方法,在模块的类方法样式中调用显示错误

iphone - 如何将核心数据与引用的文件同步?

ios - 如何在 iOS 的 ImageView 中添加手势识别器?

objective-c - 如何正确设置 Objective-C 中的属性值