Mar*_*ell 3 cocoa objective-c categories
在阅读一些Apple Header文件时,我注意到他们使用类别为同一个对象声明了多个接口.
例如: NSDictionary.h
@interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
//methods
@end
@interface NSDictionary (NSExtendedDictionary)
//methods
@end
@interface NSDictionary (NSDictionaryCreation)
//methods
@end
Run Code Online (Sandbox Code Playgroud)
这纯粹是一种帮助组织代码的方法吗?作为用户没有区别,所有类别中的所有方法在使用时都会出现NSDictionary.
这有其他有用的结果吗?
nielsbot有正确的想法,但这些类别有一个特定的技术原因.您可以将实现放在单独的文件中.(从技术上讲,不同的翻译单位.)
档案1:
@implementation NSDictionary
...
@end
Run Code Online (Sandbox Code Playgroud)
文件2:
@implementation NSDictionary (NSExtendedDictionary)
...
@end
Run Code Online (Sandbox Code Playgroud)
档案3:
@implementation NSDictionary (NSDictionaryCreation)
...
@end
Run Code Online (Sandbox Code Playgroud)