1
下面是我们从Xcode 8移动到9(Swift 3.1-> Swift 3.2/4)时看到的情况。它是一个常见的情况,它有一个公共头文件,它具有只读属性和带有读/写定义的私有头文件,以及需要访问的Swift代码(在这种情况下是单元测试,但可能只是一个混合的ObjC/Swift项目)制定者。我想我会分享我们如何解决这个问题。Objective-C中的私人安装程序,从Swift中访问3.2+
主类:
Objective-C的标题
@interface SomeClass : NSObject {
@property (nonnull, nonatomic, readonly) SomeOtherClass* var;
}
@end
然后,我们有一个专用标题:
Objective-C的标题
@interface SomeClass (Testing) {
@property (nonnull, nonatomic, readwrite) SomeOtherClass* var;
}
@end
的在桥接报头中,我们包括原始报头和私有报头。使用Xcode 8(Swift 3.1),这工作得很好。在Xcode 9(Swift 3.2/4)中,我们得到一个错误,说明该属性是只读的。