我在A类中使用的NSMutableArray的堆栈类别
@implementation NSMutableArray (StackUtil)
- (void)push:(id)stackObject {
[self addObject:stackObject];
}
- (id)pop {
id retVal = [[self lastObject]retain];
[self removeLastObject];
return [retVal autorelease];
}
@end
如何正确地将此类别包含在与A类无关的B类中?另外我注意到当我将#Import A类放入C类的标题时,类别方法起作用,但我得到“对象可能无法响应推送消息”的警告。有人可以弄清楚类别是如何被“重用”的,以及为什么他们有名字(在这种情况下是StackUtil),以及如何使用它们。
答案 0 :(得分:6)
您应该在头文件中有相应的@interface NSMutableArray (StackUtil)
来声明该类别。导入该标题应该足以将新方法用于导入范围内的任何NSMutableArray
。
@interface NSMutableArray (StackUtil)
- (void) push:(id)stackObject;
- (id) pop;
@end
当然@interface
,通常是@implementation
,应该是他们自己的文件,独立于你的A,B和C类,因为它们是通用的附加内容,而不是属于到其中一个客户类。