Using Swift with Cocoa and Objective-C(Swift 2.0版):開始--基礎設置-備

這是一個正在研發的API或技術的概要文件,蘋果公司提供這些信息主要是爲了幫助你經過蘋果產品使用這些技術或者編程接口而作好計劃,該信息有可能會在將來發生改變,本文當中提到的軟件應該以最終發佈的操做系統測試和最終文檔爲準,將來有可能會提供新版本的文檔信息。git

Swift 被設計用來無縫兼容 Cocoa 和 Objective-C 。在 Swift 中,你可使用 Objective-C 的 API(包括系統框架和你自定義的代碼),你也能夠在 Objective-C中 使用 Swift 的 API。這種兼容性使 Swift 變成了一個簡單、方便而且強大的工具集成到你的 Cocoa 應用開發工做流程中。github

這篇指南包括了三個有關兼容性的重要方面方便你更好地利用來開發 Cocoa 應用:編程

  • 互用性 使你將 Swift 和 Objective-C 相接合,容許在 Objective-C 中使用 Swift 的 Class 而且當你在寫 Swift 代碼時利用熟悉的 Cocoa Class、Pattern、Practice。swift

  • 混合和匹配 容許你建立結合了 Swift 和 Objective-C 文件的混合語言應用,他們能跟彼此進行通訊。app

  • 遷移 因爲以上兩點,從已經存在的 Objective-C 代碼遷移到 Swift 是很是簡單的,使得用最新的 Swift 特性代替你的 Objective-C 應用部份內容成爲了可能。框架

在你開始學習這些特性前,你須要對如何創建 Swift 環境來訪問 Cocoa 系統框架有個大致瞭解。工具

創建你的 Swift 環境學習

爲了開始體驗在 Swift 中訪問 Cocoa 框架,使用 Xcode 的一個模板來建立一個基於 Swift 應用。測試

在 Xcode 中建立一個 Swift 項目操作系統

1.選擇 File > New > Project > (iOS or OS X) > Application > your template of choice。

2.點擊 Language 彈出菜單並選擇 Swift。

37.png

Swift 項目的結構幾乎和 Objective-C 項目如出一轍,只有一個重要的區別:Swift 沒有頭文件。在實現和接口之間沒有顯示的劃分,因此一個特定類中的全部信息都存儲在單獨的.swift文件中。

如今開始,你能夠開始體驗在app delegate中寫 Swift 代碼,或者你能夠經過選擇 File > New > File > (iOS or OS X) > Other > Swift來建立一個 Swift 類。

理解 Swift 導入過程

在你創建 Xcode 項目後,你能夠在 Swift 裏導入任意用 Objective-C 來工做的 Cocoa 平臺框架。

任意 Objective-C 的框架(或 C 類庫)將做爲一個module,能直接導入到 Swift 中。這些包括了全部 Objective-C 系統框架-好比 Foundation、UIKit 和 SpriteKit,就像系統支持公共 C 類庫。舉個例子,想導入 Foundation,只要簡單地添加 import 語句到你寫的 Swift 文件的頂部。

SWIFT

import Foundation

這個 import 導入了全部 Foundation 的 API,包括NSDate,NSURL,NSMutableData,而且他們的全部方法、屬性和類別均可以在 Swift 中直接使用。

導入過程是很是簡潔的。Objective-C 框架在頭文件中申明 API。在 Swift 中,那些頭文件被編譯成 Objective-C 的 module,接着被導入到 Swift 做爲 Swift 的 API。導入決定了 Objective-C 的 Function,Class,Method 和 Type 如何在 Swift 中出現。對於 Function 和 Method,這個過程影響他們的參數和返回值。導入過程能夠作下面這些事情:

  • 重映射肯定的 Objective-C 類型到 Swift 中的同等類型,就像 id 到AnyObject

  • 重映射肯定的 Objective-C 核心類型到 Swift 中的替代類型, 就像NSString到String

  • 重映射肯定的 Objective-C 概念到 Swift 中相匹配的概念,如pointers到optionals

在互用性章節,你將會了解到更多關於這些映射如何在你的 Swift 代碼進行取捨。 導入 Swift 的模型到 Objective-C 和從 Objective-C 導入 Swift 是很是類似的。Swift 申明它的 API,好比一個框架做爲 Swift modules。同時這些 Swift modules 會生成 Objective-C 的頭文件。這些頭文件能夠映射回 Objective-C 的 API 中。一些 Swift 的 API 不映射回 Objective-C 由於他們取捨了語言特性發現這些在 Objective-C 中不可用。關於在 Objective-C 中使用 Swift 的更多特性,請參看在同一項目中使用 Swift 和 Objective-C

注意:你不能直接把 C++ 代碼導入 Swift。解決辦法是爲 C++ 代碼建立一個 Objective-C 或者 C 的封裝。

相關文章
相關標籤/搜索