最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹

 更新時間:2014年07月21日 09:07:01   投稿:junjie  
這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉(zhuǎn)移到Swift過程介紹,需要的朋友可以參考下

遷移工作正好提供了一個重新審視現(xiàn)有 Objective-C 應(yīng)用程序的機會,也可以通過 Swift 代碼來更好的優(yōu)化應(yīng)用程序的體系架構(gòu),邏輯以及性能。直接的說,你將用先前學(xué)到的 mix and match 以及這兩個語言間的互操作性來進行增量遷移工作。Mix-and-match 功能使得選擇哪些特性和功能來用 Swift 來實現(xiàn),哪些依然用 Objective-C 來實現(xiàn)變得簡單。Swift 和 Objective-C 的互用性又使得將這些功能集成到 Objective-C 變得并不困難。通過這些工具可以開放 Swift 的擴展功能并集成到現(xiàn)有的 Objective-C 項目中而完全不必立刻使用 Swift 重寫整個項目。

為你的Objective-C代碼做好遷移準(zhǔn)備

在開始遷移你的代碼之前,請確保你的 Objective-C 和 Swift 代碼間有著最佳兼容性。這意味著整理并使用 Objective-C 的現(xiàn)代化特性來優(yōu)化你的現(xiàn)有項目。為了和 Swift 進行更容易的無縫交互,你的現(xiàn)有代碼需要遵循現(xiàn)代編碼實踐。這里有個簡短的適配練習(xí)列表,參看Adopting Mordern Objective-C。

遷移過程

最有效遷移代碼的方式是基于逐個文件的方式,即一次完成一個類。由于你不能在 Objective-C 中繼承 Swift 類, 最好選擇一個沒有子類的(譯者:從類的繼承角度來看,應(yīng)該先從類族樹的葉子節(jié)點開始,自底向上的進行遷移操作)。你就可以用單個.swift文件來代替對應(yīng)的.m和.h文件了。你所有的實現(xiàn)代碼和接口將直接放進單個 Swift 文件。你不用再創(chuàng)建頭文件了;Xcode 會在你需要引用的時候自動生成頭文件。(譯者:當(dāng)然這實在xcode內(nèi)部機制完成的了,對開發(fā)者是透明的)

準(zhǔn)備工作

•在 Xcode 中:File>New>File>(iOS 或者 OS X) > Other > Swift 為對應(yīng)的 Objective-C.m 和.h文件創(chuàng)建一個 Swift 類。
•導(dǎo)入相關(guān)系統(tǒng)框架。
•如果你希望在 Swift 文件中訪問 Objective-C 代碼的話,可以填入一個 Objective-C 橋接頭。具體的操作步驟,請看 Importing Code from Within the Same App Target。
•為使你的 Swift 類能在 Objective-C 中訪問使用,可以繼承 Objective-C 類,或者標(biāo)記上@objc屬性。為類指定特殊的名稱,以在 Objective-C 中使用,標(biāo)記上@objc(#name#), <#name#>就是在 Objective-C 中引用的 Swift 類名。 更多信息,請看Swift Type Compatibility。

開始工作

•你可以通過繼承 Objective-C 類,適配 Objective-C 協(xié)議,或者更多的方式,來讓 Swift 類集成 Objective-C 行為。更多信息,請看Writing Swift Classes with Objective-C Behavior
•當(dāng)你使用 Objective-C APIs 的時候,你需要知道 Swift 是怎樣來翻譯某些 Objective-C 特性的。更多信息,請看Interacting with Objective-C APIs
•當(dāng)用 Swift 編寫用到 Cocoa 框架的代碼時,記住某些類型是被橋接的,意味著你可以使用某些 Swift 類型來替代 Objective-C 類型。更多信息,請看Working with Cocoa Data Types
•當(dāng)你在 Swift 中運用 Cocoa設(shè)計模式得時候,請看 Adopting Cocoa Design Patterns獲取更多的通用設(shè)計模式的轉(zhuǎn)換信息。
•對于打算將項目從 Objective-C 轉(zhuǎn)換到 Swfit 的人,請看 Propeties
•在必要的時候,請為 Swift 的屬性或方法,通過@objc(<#name#>)屬性來提供 Objective-C 名稱,就像這樣:

復(fù)制代碼 代碼如下:

var enabled: Bool {
    @objc(isEnabled) get {
        /* ... */
    }
}

•分別用func和class func來表示 instance(-) 和 class(+) 方法。
•聲明簡單的宏來作為常量,將復(fù)雜的宏轉(zhuǎn)換為函數(shù)。

大功告成

•在你的 Objective-C 代碼中更新 import 語句為 #import "模塊名-Swift.h",在Importing Code from Within the Same App Target中曾有提到。
•在Target 的成員選擇框中去掉勾選框來移除原始的 Objective-C.m文件.不要立刻刪除.m和.h文件,以備解決問題用。
•如果你給 Swift 類起了一個不同的名字,請使用 Swift 類名代替 Objective-C 名。

問題解決提示

對于不同的項目,遷移的經(jīng)歷是不盡相同的。無論怎樣,都有一些通用的步驟和工具能幫你解決代碼遷移時碰到的問題:

•記?。耗悴荒茉?Objective-C 中繼承 Swift 類。因此,被你遷移的類不能有任何的 Objective-C 子類存在于你的應(yīng)用中。
•當(dāng)你遷移一個類到 Swift 的時候,你必須從 target 中移除相關(guān)的.m文件,以避免編譯時提示出現(xiàn)重復(fù)的符號等編譯錯誤。
•為了在 Objective-C 中可以訪問并使用,Swift 類必須是一個 Objective-C 類的子類,或者被標(biāo)記為@objc。
•當(dāng)你在 Objective-C 中使用 Swift 代碼的時候,記住 Objective-C 不能理解那些 Swift 的某些特性,請看Using Swift from Objective-C。
•可以通過Commond + 點擊一個 Swift 類名來查看他生成的頭文件。
•可以通過Option + 點擊一個符號來查看更詳細的信息,比如它的類型,屬性以及文檔注釋等。

相關(guān)文章

  • Swift方法調(diào)度之類的普通方法底層探究

    Swift方法調(diào)度之類的普通方法底層探究

    這篇文章主要介紹了Swift-方法調(diào)度-類的普通方法底層探究,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Swift 3.0將UILabel數(shù)字顏色設(shè)置為紅色的方法

    Swift 3.0將UILabel數(shù)字顏色設(shè)置為紅色的方法

    這篇文章主要介紹了關(guān)于在Swift中將UILabel數(shù)字顏色設(shè)置為紅色的方法,文中給出了詳細的示例代碼,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Swift循環(huán)遍歷集合的方法總結(jié)分享

    Swift循環(huán)遍歷集合的方法總結(jié)分享

    SWIFT是蘋果于2014年WWDC發(fā)布的新開發(fā)語言,可與Objective-C*共同運行于Mac OS和iOS平臺,用于搭建基于蘋果平臺的應(yīng)用程序。這篇文章主要給大家總結(jié)介紹了關(guān)于Swift循環(huán)遍歷集合的方法,如for-in循環(huán)、for循環(huán)以及基于塊的遍歷等方法,需要的朋友可以參考下。
    2017-03-03
  • 深入解析Swift語言編程中的可選鏈

    深入解析Swift語言編程中的可選鏈

    這篇文章主要介紹了深入解析Swift語言編程中的可選鏈,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • Swift中非可選的可選值類型處理方法詳解

    Swift中非可選的可選值類型處理方法詳解

    Optional是Objective-C沒有的數(shù)據(jù)類型,是蘋果引入到Swift語言中的全新類型,它的特點就和它的名字一樣:可以有值,也可以沒有值,當(dāng)它沒有值時,就是nil。下面這篇文章主要給大家介紹了關(guān)于Swift中非可選的可選值類型處理方法的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • Swift版使用ThPullRefresh實現(xiàn)下拉上拉刷新數(shù)據(jù)

    Swift版使用ThPullRefresh實現(xiàn)下拉上拉刷新數(shù)據(jù)

    這篇文章主要介紹了Swift版使用ThPullRefresh實現(xiàn)下拉上拉刷新數(shù)據(jù),需要的朋友可以參考下
    2016-01-01
  • Swift教程之枚舉類型詳解

    Swift教程之枚舉類型詳解

    這篇文章主要介紹了Swift教程之枚舉類型詳解,本文講解了枚舉語法、匹配枚舉值與switch語句、關(guān)聯(lián)值、原始值等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift是Swift函數(shù)響應(yīng)式編程的一個開源庫,由Github的ReactiveX組織開發(fā),維護。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹

    Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹

    這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉(zhuǎn)移到Swift過程介紹,需要的朋友可以參考下
    2014-07-07
  • Swift仿選擇電影票的效果并實現(xiàn)無限/自動輪播的方法

    Swift仿選擇電影票的效果并實現(xiàn)無限/自動輪播的方法

    這篇文章主要給大家介紹了關(guān)于Swift仿選擇電影票的效果并實現(xiàn)無限/自動輪播的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評論

静乐县| 南皮县| 德清县| 通道| 明水县| 河池市| 景谷| 海晏县| 平安县| 丰都县| 阳谷县| 盐亭县| 柘城县| 固阳县| 深水埗区| 巴彦县| 新晃| 措美县| 上虞市| 合作市| 桐乡市| 灵台县| 古蔺县| 长子县| 岳阳市| 元朗区| 嘉善县| 兴义市| 武邑县| 应城市| 永登县| 陆良县| 天镇县| 罗山县| 银川市| 永济市| 新余市| 丹巴县| 拉萨市| 平和县| 柘城县|