从Swift子类/扩展名访问受保护的Objective-C ivar

时间:2018-10-09 16:15:40

标签: objective-c swift

在Objective-C中,我可以访问子类中的@protected ivars:

接口声明:

@interface SomeClass : NSObject
{
@protected
    NSString* _protectedString;
}
@end

子类实现:

@implementation OtherClass : SomeClass
- (void)someFunc
{
    self->_protectedString; // OK
}
@end

在Swift子类和/或扩展中是否可以做同样的事情?我已经尝试过extension SomeClassclass 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。

0 个答案:

没有答案