主要事项
这是一篇正在开发中的API或技术的初始文档。Apple供给此信息来协助您对采取本技术做计划,和依据这里的描绘的编程接口来运用Apple品牌的产品。这些信息受变卦影响,而且本文档中的软件完成应当以终极的操作系统的测试和终极文档为准。本文档的新版本,可能会经过未来的API和技术的Seed版本供给。
本文触及
Swift被设计成无缝兼容于Cocoa和Objective-C。你可以在Swift里运用Objective-C API(包含从系统框架到你本人的定制代码),和在Objective-C里运用Swift API。这类兼容性使得的Swift能作为一个容易,便利而且弱小的Tools集成到你的Cocoa 使用开发任务流程中。
本指南涵盖三个兼容性的主要方面,你可以在开发Cocoa使用时用到的益处:
互通性 给了你Swift和Objective-C代码的接口,答应你经过Objective-C运用Swift的类,而且在写Swift代码时,取得类似于Cocoa类,形式和理论的益处。
混杂和适配 答应你创立混言语的使用,同时包含Swift和Objective,它们可以相互通讯。
迁徙 从已有Objective-C代码到Swift,具有互通性和混杂适配使得迁徙变得容易,使得用最新的Swift特征替代你的Objective-C使用的部分红为可能。
在你Start进修这些特征之前,你需求对怎么设置一个Swift情况来拜访Cocoa系统框架有根本的了解。
为了Start经过Swift来体验拜访 Cocoa 框架,用Xcode的一个模板来创立一个基于 Swift的使用顺序。
在Xcode中创立一个Swift 项目
选择 File > New > Project > (iOS or OS X) > Application > your template of choice.
点击 Language 弹出菜单并选择 Swift.
一个 Swift项目标构造和一个Object-C项目简直一样,只要一个主要的差别:Swift没有header文件。在完成和接口之间没有显式的声明,所以一个指定类的一切的信息都在一个独自的.swift文件中。
从这时候Start, 你可以Start在AppDelegate里体验写Swift代码,或许你可以经过选择 File > New > File > (iOS or OS X) > Other > Swift 创立一个新的 Swift 类文件。
在你树立Xcode项目后,你可以在Swift里,导入恣意用Object-C来任务的Cocoa平台框架。
恣意Objective-C 框架 (或许C类库) 将作为一个module,能间接导入到Swift中。包含一切的Objectve-C系统框架—— 例如 Foundation, UIKit, 和 Sprite Kit,就像系统支撑的公共C类库。举个例子,为了导入Foundation,容易地添加import语句到你写的Swift文件的顶部:
import Foundation
这个import使得一切的 Foundation 的API —— 包含NSDate,NSURL,NSMutableData和他们一切的办法,属性和种别——间接在Swift里可用。
导入进程是容易的。Objective-C 框架在header文件里声明API。在Swift里,那些header文件被编译成Objective-C module,然后被导入到Swift作为Swift的API。导入决议了运用Objective-C的函数,类,办法和类型声明在Swift中的方式。关于函数和办法, 如许的处置影响它的参数和前往值类型,导入进程可以做到下面的工作:
从头映照断定的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的module生成Objective-C的 header。这些header声明可以映照回Objective-C的API。一些Swift API 不映照回Objective-C是由于他们弃取了在Objective-C中可用的言语特征。关于运用在Objective-C里运用Swift更多信息,请参看 在统一项目中的Swift 和 Objective-C 。
留意
你不克不及间接导入 C++ 代码到 Swift。而是,为C++代码创立一个Objective-C 或许 C wrapper。
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务