【发布时间】:2011-12-06 01:21:06
【问题描述】:
假设我有一个具有以下结构的类,我希望覆盖它的委托方法之一(或者更多,通常是它的公共方法之一),但现在它基于一些私有方法。有没有办法扩展它,或者我应该简单地得出结论,它的设计没有考虑到可扩展性?
MyBaseClass.h:
@interface MyBaseClass : UIView <UITableViewDataSource, UITableViewDelegate>
{
}
// some public methods
@end
MyBaseClass.m:
@interface MyBaseClass (Private)
- (void)_privateMethod1;
- (void)_privateMethod2;
@end
#pragma mark - UITableViewDataSource
// ------ I'D LIKE TO CHANGE THE BEHAVIOR OF THIS METHOD EXTENDING MyBaseClass
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)rowIndexPath {
[self _privateMethod1];
[self _privateMethod2];
}
@end
如果我真的要继续扩展类,我还需要引用私有方法,但显然我不想访问任何私有方法。 如果这个问题听起来有点琐碎,我很抱歉。
谢谢
【问题讨论】:
标签: objective-c cocoa delegates private-members