我這樣做,並得到了一些意想不到的結果超級有用的:我有麻煩集成在斯威夫特應用程序的框架。 Objective-C的工作很好。 你在這裏提到了一些注意事項。
我建議在Objective-C中使用所有功能編寫測試應用程序時迭代執行此操作。這樣,如果有一些功能不能很好地跨越Swift到Objective-C的邊界,它會盡早被發現。
你有關的問題的話一般都是用一個小小的例外正確:自選沒有從Objective-C的缺失,它們顯示爲變量和方法參數nullable/nonnull
修飾。雖然這不能完全取代可選項,但它有助於在流程的早期檢測問題。
這裏是我發現了其他一些問題隨機列表:
斯威夫特Error
和NSError
在Objective-C使用之間的橋接。轉換並不總是一帆風順,所以最好在導出的代碼中使用NSError
。
如果您在框架混合Objective-C和斯威夫特,你不能使用橋接報頭,而是採用modulemap文件,這往往把相當大的和複雜的。
由於您不能在框架內嵌入框架,因此您必須確保應用程序爲其目標設置了ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
標誌。這必須在文檔中明確指出。另外,爲框架創建胖庫時,必須從分佈式SDK中去除這些文件。
而且,正如我在一開始所說的,在Swift應用程序中使用最終的混合語言框架仍然沒有成功。
希望,這將添加到開發庫時要考慮的事項列表中。
來源
2017-07-11 18:15:53
UrK
您將無法使用枚舉的完整功能。 – Mozahler
@Mozahler - 你是對的,更新了問題 –