我有一个与 xib 相关的 ClassA:
@interface ClassA : UIViewController
@end
#import "ClassA.h"
@interface ClassA()
@property (nonatomic, weak) IBOutlet UIButton *myButton;
@end
@implementation ClassA
....
@end
知道我有一个从 ClassA 继承的 ClassB 女巫。( UIViewController 女巫一个 xib)
@interface ClassB : ClassA
@end
@implementation ClassB
// Here i can't not access the private property myButton.
@end
我的问题是:
我知道在继承的类中无法访问所有私有类字段(方法、属性、..)。我也知道如果我想访问我的属性,我只是在 ClassA.h 中声明它们,但我认为 IBOUtlet 和 IBAction 应该是私有的。为什么Objective C 不能有Java 关键字(private、protected、public)之类的东西。?
我的另一个问题是,在 ClassB.xib 中,我已将文件的所有者分配给 ClassB,在这里我可以看到 myButton 插座(女巫在 ClassA 中被声明为私有),我可以将其分配给 ClassB.xib 中的另一个按钮但我不能以编程方式进行。
为什么 xibs(文件的所有者)和类的代码实现(继承可见性的差异)之间存在差异?谢谢