2010-08-01 150 views
2

我已经堆了NSMutableArray的类,我在A级使用如何在多个类中使用相同的类别?

@implementation NSMutableArray (StackUtil) 

- (void)push:(id)stackObject { 

[self addObject:stackObject]; 
} 
- (id)pop { 

id retVal = [[self lastObject]retain]; 
[self removeLastObject]; 
return [retVal autorelease]; 
} 

@end 

如何正确包括这一类别为B类是无关的课吗?另外我注意到,当我#将类A引入类C的头部时,类别方法可以工作,但是我得到“对象可能不响应推送消息”警告。是否有人可以清除类别是如何“重复使用”以及为什么他们有名字(本例中是StackUtil)以及它们是如何使用的。

回答

6

在声明类别的头文件中应该有相应的@interface NSMutableArray (StackUtil)。导入该标题应足以将新方法的使用传送到导入范围内的任何NSMutableArray

@interface NSMutableArray (StackUtil) 
- (void) push:(id)stackObject; 
- (id) pop; 
@end 

当然,@interface,而且通常@implementation,应该在自己的文件,独立于你的类A,B和C中,因为它们是通用的补充,不是属于那些之一客户端类。

+1

是的!在界面中定义类别是我错过的。现在看来我真的很基本。希望这篇文章能够帮助其他新的类别。 – ghostsource 2010-08-01 22:39:43

相关问题