gpt4 book ai didi

objective-c - 如何扩展基于私有(private)方法的类方法

转载 作者:行者123 更新时间:2023-12-03 16:59:04 25 4
gpt4 key购买 nike

假设我有一个具有以下结构的类,并且我希望重写其委托(delegate)方法之一(或多个,通常是其公共(public)方法之一),但现在它基于一些私有(private)方法。有没有办法扩展它,或者我应该简单地得出结论,它的设计没有考虑到可扩展性?

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

如果我实际上要扩展该类,我还需要引用私有(private)方法,但显然我不想访问任何私有(private)方法。如果这个问题听起来有点微不足道,我很抱歉。

谢谢

最佳答案

您可以在单独的 header MyBaseClassPrivate.h 中而不是在实现文件中声明私有(private)方法,并将其导入子类中。

关于objective-c - 如何扩展基于私有(private)方法的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com