一个类别可以在Objective C中实现协议吗?

时间:2011-04-28 20:44:04

标签: objective-c cocoa protocols categories

我在NSDate上有一个类别,如果它可以实现我之前创建的协议将会很方便。这可能吗?什么是正确的语法?

1 个答案:

答案 0 :(得分:140)

是的,这是可能的。语法是:

@interface NSDate (CategoryName) <ProtocolName>
@end

@implementation NSDate (CategoryName)
@end

这是关于该主题的Apple's documentation

也可以使用类扩展来完成此操作。我非常喜欢私下遵守委托协议。这样做会隐藏从公共接口成为某个类的某个委托的实现细节,并从标头中删除依赖项。