在Objective-C中,我可以访问子类中的@protected
ivars:
接口声明:
@interface SomeClass : NSObject
{
@protected
NSString* _protectedString;
}
@end
子类实现:
@implementation OtherClass : SomeClass
- (void)someFunc
{
self->_protectedString; // OK
}
@end
在Swift子类和/或扩展中是否可以做同样的事情?我已经尝试过extension SomeClass
和class SomeClassChild: SomeClass
并得到相同的结果:
extension SomeClass {
func extensionFunc() {
self._protectedString // compiler error: "Value of type SomeClass has no member '_protectedString'"
}
}
搜索此内容主要是给我有关“ Swift Access Control”的文章,所以我希望有人比我更了解Swift <=> Obj-C interop。