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)中,我們得到一個錯誤,說明該屬性是隻讀的。