我有一个 NSMutableArray
的子类,它实际上处理某种类型的数据,比如 Employee
。问题是我不喜欢 addObject
insertObject
等的固有名称,想将它们更改为 addEmployee
插入员工
。
我该如何处理?
最佳答案
如果您不打算继承父类(super class)的方法,那么您不应该使用该父类(super class)!
当您继承时,它是子类和父类(super class)之间的"is"关系。 “Employer 是一个 NSMutableArray”——不,那不是真的,因此不要让 Employer 成为 NSMutableArray 的子类。此外,将来您可能会使用字典来存储员工(例如映射 'name' -> 'employee'),然后将表示作为数组继承根本行不通。
@interface Employer : NSObject {
NSMutableArray *employees;
}
- (void) addEmployee: (Employee *) employee;
@end
像这样。现在 addObject:
不适用于 Employee 的实例;只有 addEmployee:
有效。此外,您最终只想专门化 filteredArrayWithPredicate:
之类的方法 - 因此继承它们不会是一个优势。
关于iphone - 更改子类的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225449/