如何在多个类中使用相同的类别?
问题描述:
我已经堆了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)以及它们是如何使用的。
答
在声明类别的头文件中应该有相应的@interface NSMutableArray (StackUtil)
。导入该标题应足以将新方法的使用传送到导入范围内的任何NSMutableArray
。
@interface NSMutableArray (StackUtil)
- (void) push:(id)stackObject;
- (id) pop;
@end
当然,@interface
,而且通常@implementation
,应该在自己的文件,独立于你的类A,B和C中,因为它们是通用的补充,不是属于那些之一客户端类。
是的!在界面中定义类别是我错过的。现在看来我真的很基本。希望这篇文章能够帮助其他新的类别。 – ghostsource 2010-08-01 22:39:43