Objective c 继承.m文件中声明的方法
我现在知道Objective-C中没有受保护的方法,这是我的问题。 我有两个ViewController,其中有许多共享的函数和属性。我的设想是拥有一个BaseViewController来保存共享的方法和属性,两个类将从中继承和重写所需的功能,同时使用相同的变量, 我不希望通过将共享函数放在.h文件中来将其转换为公共函数 为了帮助澄清我的问题,我添加了代码:) 调用Objective c 继承.m文件中声明的方法,objective-c,uiviewcontroller,derived-instances,Objective C,Uiviewcontroller,Derived Instances,我现在知道Objective-C中没有受保护的方法,这是我的问题。 我有两个ViewController,其中有许多共享的函数和属性。我的设想是拥有一个BaseViewController来保存共享的方法和属性,两个类将从中继承和重写所需的功能,同时使用相同的变量, 我不希望通过将共享函数放在.h文件中来将其转换为公共函数 为了帮助澄清我的问题,我添加了代码:) 调用[super-setBtns:p_btns]引发错误: DerivedGameViewController.m:BaseViewC
[super-setBtns:p_btns]代码>引发错误:
DerivedGameViewController.m:BaseViewController的@interface没有可见的声明选择器“setBtns:”
我怎样才能做到这一点?是否有人可以发布一个代码片段或指出我的错误(在代码或概念中)。只需使用类别中声明的受保护方法创建第二个标题。适当地命名并记录标题
UIGestureRecognizer.h,可能会以您为例。只需使用类别中声明的受保护方法创建第二个标头。适当地命名并记录标题
UIGestureRecognizer.h和may server作为一个例子。我不确定这是我要找的,所以我通过添加代码编辑了我的问题,如果你能再看一眼,我会非常感激:)我不确定这是我要找的,所以我通过添加代码编辑了我的问题,如果你能再看一眼,我会非常感激:)
@interface BaseViewController ()
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *uiButtons;
- (void)setBtns:(NSArray *)p_btns; //tried with & without this line
@end
@implementation BaseViewController
- (void)setBtns:(NSArray *)p_btns {
uiButtons = p_btns;
//do something generic with the buttons (set font, image etc.)
}
@end
@interface DerivedViewController ()
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttonsConnectedToTheActualView;
@end
@implementation DerivedViewController
- (void) setBtns:(NSArray *)p_btns {
[super setBtns:p_btns];
//do something specific with the buttons (decide if they face up or down according to this class logic)
}
@end