Swift開發(fā)指南:使用Swift與Cocoa和Objective-C(Swift 4) - 1.入門

章節(jié)導(dǎo)航:
Swift開發(fā)指南:使用Swift與Cocoa和Objective-C(Swift 4) - 1.入門
Swift開發(fā)指南:使用Swift與Cocoa和Objective-C(Swift 4) - 2.互通性


基本設(shè)置

Swift旨在提供與Cocoa和Objective-C的無縫兼容性。您可以在Swift中使用Objective-C API,您可以在Objective-C中使用Swift API。這使Swift成為一個簡單、方便和強大的工具,可以集成到開發(fā)工作流程中。

本指南介紹了Swift和Objective-C兼容性的三個重要方面,您可以在開發(fā)Cocoa應(yīng)用程序時將其利用它:

  • 互操作性讓您可以在Swift和Objective-C代碼之間進行交互,允許您在Objective-C中使用Swift類,并在編寫Swift代碼時利用熟悉的Cocoa類、模式和實踐。
  • 混編和匹配允許您創(chuàng)建包含可以彼此通信的Swift和Objective-C文件的混合語言應(yīng)用程序。
  • 從現(xiàn)有的Objective-C代碼遷移到Swift可以輕松實現(xiàn)互操作性和混合搭配,從而可以使用最新的Swift功能來替換Objective-C應(yīng)用的部分。

在開始了解這些功能之前,您需要基本了解如何設(shè)置可以訪問Cocoa系統(tǒng)框架的Swift環(huán)境。


建立你的Swift環(huán)境

要使用Swift開始嘗試使用Cocoa應(yīng)用程序開發(fā),請從提供的Xcode模板之一創(chuàng)建一個新的Swift項目。

在Xcode中創(chuàng)建Swift項目

  1. 選擇文件>新建>項目>(iOS,watchOS,tvOS 或 macOS)>應(yīng)用程序> 您選擇的模板。
  2. 單擊語言彈出菜單并選擇Swift。


    建立Swift項目

Swift項目的結(jié)構(gòu)與Objective-C項目幾乎完全相同,有一個重要的區(qū)別:Swift沒有頭文件。在實現(xiàn)和接口之間沒有明確的描述 —— 所有關(guān)于類、函數(shù)或常量的信息都駐留在單個.swift文件中。這在同一項目中的Swift與Objective-C章節(jié)中有更詳細的討論。

從這里,您可以通過在應(yīng)用程序委托中編寫Swift代碼或通過選擇文件>新建>文件>(iOS,watchOS,tvOS 或 macOS)> Source> Swift 創(chuàng)建的新Swift文件來開始體驗。


了解Swift導(dǎo)入流程

您的Xcode項目設(shè)置完成后,您可以從Cocoa或Cocoa Touch導(dǎo)入任何框架,開始通過Swift使用Objective-C。

任何支持模塊的 Objective-C框架或C語言庫都可以直接導(dǎo)入到Swift中。這包括所有Objective-C系統(tǒng)框架,例如Foundation,UIKit和SpriteKit以及系統(tǒng)附帶的常用C語言庫。例如,要在Swift文件中使用Foundation API,請將以下import語句添加到文件的頂部:

import Foundation

使用此導(dǎo)入語句,Swift文件現(xiàn)在可以訪問Foundation的所有類,協(xié)議,方法,屬性和常量。

導(dǎo)入過程很簡單。Objective-C框架在頭文件中暴露API。在Swift中,這些頭文件被編譯為Objective-C模塊,然后將其導(dǎo)入Swift作為Swift API。導(dǎo)入過程確定在Swift中顯示的Objective-C代碼中聲明的函數(shù)、類、方法和類型。對于函數(shù)和方法,此過程會影響其參數(shù)和返回值的類型。對于類型,導(dǎo)入過程可能會產(chǎn)生以下影響:

  • 重新映射某些Objective-C的類型為它們在Swift的同等類型,如idAny
  • 重新映射某些Objective-C的核心類型為它們在Swift的替代類型,如NSStringString
  • 將某些Objective-C概念重新映射為Swift中對應(yīng)的概念,如指向可選項的指針

有關(guān)在Swift中使用Objective-C的更多信息,請參閱與Objective-C API進行交互(章節(jié)2)。

注意
您不能將C ++代碼直接導(dǎo)入Swift。而應(yīng)該為C++代碼創(chuàng)建一個Objective-C或C包裝器。

將Swift導(dǎo)入Objective-C的模型類似于將Objective-C導(dǎo)入Swift的模型。Swift將其暴露的API(例如一個框架)生成Swift模塊。除了生成這些Swift模塊之外,還生成了Objective-C頭文件。這些標(biāo)頭提供可以映射回Objective-C的API。一些Swift API不會映射回Objective-C,因為它們利用Objective-C中不可用的功能。

有關(guān)在Objective-C中使用Swift的更多信息,請參閱同一項目中的Swift和Objective-C



文章翻譯自Apple Developer Page : Using Swift with Cocoa and Objective-C (Swift 4)
方便大家學(xué)習(xí)之用,如果翻譯存在錯誤,歡迎指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容