Objective-c代碼若何移植為Swift代碼 Objective-c代碼轉移到Swift進程引見。本站提示廣大學習愛好者:(Objective-c代碼若何移植為Swift代碼 Objective-c代碼轉移到Swift進程引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Objective-c代碼若何移植為Swift代碼 Objective-c代碼轉移到Swift進程引見正文
遷徙任務正好供給了一個從新審閱現有 Objective-C 運用法式的機遇,也能夠經由過程 Swift 代碼來更好的優化運用法式的系統架構,邏輯和機能。直接的說,你將用先前學到的 mix and match 和這兩個說話間的互操作性來停止增量遷徙任務。Mix-and-match 功效使得選擇哪些特征和功效來用 Swift 來完成,哪些仍然用 Objective-C 來完成變得簡略。Swift 和 Objective-C 的互用性又使得將這些功效集成到 Objective-C 變得其實不艱苦。經由過程這些對象可以開放 Swift 的擴大功效並集成到現有的 Objective-C 項目中而完整不用連忙應用 Swift 重寫全部項目。
為你的Objective-C代碼做好遷徙預備
在開端遷徙你的代碼之前,請確保你的 Objective-C 和 Swift 代碼間有著最好兼容性。這意味著整頓並應用 Objective-C 的古代化特征來優化你的現有項目。為了和 Swift 停止更輕易的無縫交互,你的現有代碼須要遵守古代編碼理論。這裡有個冗長的適配演習列表,參看Adopting Mordern Objective-C。
遷徙進程
最有用遷徙代碼的方法是基於逐一文件的方法,即一次完成一個類。因為你不克不及在 Objective-C 中繼續 Swift 類, 最好選擇一個沒有子類的(譯者:從類的繼續角度來看,應當先從類族樹的葉子節點開端,自底向上的停止遷徙操作)。你便可以用單個.swift文件來取代對應的.m和.h文件了。你一切的完成代碼和接口將直接放進單個 Swift 文件。你不消再創立頭文件了;Xcode 會在你須要援用的時刻主動生成頭文件。(譯者:固然這其實xcode外部機制完成的了,對開辟者是通明的)
預備任務
•在 Xcode 中:File>New>File>(iOS 或許 OS X) > Other > Swift 為對應的 Objective-C.m 和.h文件創立一個 Swift 類。
•導入相干體系框架。
•假如你願望在 Swift 文件中拜訪 Objective-C 代碼的話,可以填入一個 Objective-C 橋接頭。詳細的操作步調,請看 Importing Code from Within the Same App Target。
•為使你的 Swift 類能在 Objective-C 中拜訪應用,可以繼續 Objective-C 類,或許標志上@objc屬性。為類指定特別的稱號,以在 Objective-C 中應用,標志上@objc(#name#), <#name#>就是在 Objective-C 中援用的 Swift 類名。 更多信息,請看Swift Type Compatibility。
開端任務
•你可以經由過程繼續 Objective-C 類,適配 Objective-C 協定,或許更多的方法,來讓 Swift 類集成 Objective-C 行動。更多信息,請看Writing Swift Classes with Objective-C Behavior
•當你應用 Objective-C APIs 的時刻,你須要曉得 Swift 是如何來翻譯某些 Objective-C 特征的。更多信息,請看Interacting with Objective-C APIs
•當用 Swift 編寫用到 Cocoa 框架的代碼時,記住某些類型是被橋接的,意味著你可使用某些 Swift 類型來替換 Objective-C 類型。更多信息,請看Working with Cocoa Data Types
•當你在 Swift 中應用 Cocoa設計形式得時刻,請看 Adopting Cocoa Design Patterns獲得更多的通用設計形式的轉換信息。
•關於盤算將項目從 Objective-C 轉換到 Swfit 的人,請看 Propeties。
•在需要的時刻,請為 Swift 的屬性或辦法,經由過程@objc(<#name#>)屬性來供給 Objective-C 稱號,就像如許:
var enabled: Bool {
@objc(isEnabled) get {
/* ... */
}
}
•分離用func和class func來表現 instance(-) 和 class(+) 辦法。
•聲明簡略的宏來作為常量,將龐雜的宏轉換為函數。
年夜功樂成
•在你的 Objective-C 代碼中更新 import 語句為 #import "模塊名-Swift.h",在Importing Code from Within the Same App Target中曾有提到。
•在Target 的成員選擇框中去失落勾選框來移除原始的 Objective-C.m文件.不要連忙刪除.m和.h文件,以備處理成績用。
•假如你給 Swift 類起了一個分歧的名字,請應用 Swift 類名取代 Objective-C 名。
成績處理提醒
關於分歧的項目,遷徙的閱歷是不盡雷同的。不管如何,都有一些通用的步調和對象能幫你處理代碼遷徙時碰著的成績:
•記住:你不克不及在 Objective-C 中繼續 Swift 類。是以,被你遷徙的類不克不及有任何的 Objective-C 子類存在於你的運用中。
•當你遷徙一個類到 Swift 的時刻,你必需從 target 中移除相干的.m文件,以免編譯時提醒湧現反復的符號等編譯毛病。
•為了在 Objective-C 中可以拜訪並應用,Swift 類必需是一個 Objective-C 類的子類,或許被標志為@objc。
•當你在 Objective-C 中應用 Swift 代碼的時刻,記住 Objective-C 不克不及懂得那些 Swift 的某些特征,請看Using Swift from Objective-C。
•可以經由過程Commond + 點擊一個 Swift 類名來檢查他生成的頭文件。
•可以經由過程Option + 點擊一個符號來檢查更具體的信息,好比它的類型,屬性和文檔正文等。