2011-04-27 88 views
1

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

考虑一个命名的NSString + categoryName.h给定的文件如下:

#import <Foundation/Foundation.h> 

@interface NSString (categoryName) 
... 
@end 

与名为categoryName.m一个对应的实现文件(未示出)。

我该如何制作一个子类别?这是我最初的想法(包含在所谓的NSString +类别名称+ 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 +类别名称+ 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 

一如既往,任何有关此事的帮助都将不胜感激!

+1

你试过了吗?结果是什么? :-)这听起来确实可行,但我敢打赌(这只是一个猜测),没有“子类别”的概念。但我可能是错的。 :-) – 2011-04-27 18:01:06

+3

你能帮助我们解释你想达到的目标吗?在ObjC中没有“子类别”,但同一类别的所有类别。你解决什么问题,这不起作用? – 2011-04-27 18:03:19

回答

2

我从来没有听说过Obj-C中的“子类别”。您可以根据自己的喜好为同一个班级创建多个类别,并且可以采用命名约定,如@interface Class (category_subcategory) ... @end或类似命名约定,但您对某个类别设置类别的想法似乎不可行。

0

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