Objective-C中的类别子类别

时间:2011-04-27 17:53:55

标签: objective-c categories

我的问题是在objective-c中创建类别的子类别的一个简单的基本问题。

考虑一个名为NSString + categoryName.h的文件,如下所示:

#import <Foundation/Foundation.h>

@interface NSString (categoryName)
...
@end

使用名为categoryName.m的相应实现文件(未显示)。

如果是这样,我将如何制作一个子类别?这是我最初的想法(包含在一个名为NSString + categoryName + subCategoryName.h的单独文件中):

//Should there be an import statement here to prepare compiler for appearance of categoryName?
#import <Foundation/Foundation.h>

@interface categoryName (subCategoryName)
...
@end

拥有一个类似名称的单独实现文件NSString + categoryName + subCategoryName.m:

// Is the import correct here?  Do I need to somehow reference this in my .h file?
#import "NSString+categoryName.h"

@implementation categoryName (subCategoryName)
...
@end

我们非常感谢您对此事的任何帮助!

2 个答案:

答案 0 :(得分:2)

我从未听说过Obj-C中的“子类别”。您可以为同一个类创建任意数量的类别,并且可以采用@interface Class (category_subcategory) ... @end或类似的命名约定,但是您在类别上创建类别的想法似乎不可行。

答案 1 :(得分:0)

在Objective-C中,类别不是分层的。它们只是一种将方法放入并非一次全部加载的组的方法。