黑马程序员技术交流社区

标题: 将 Objective-C 代码迁移到 Swift(Swift 2.0更新) [打印本页]

作者: 小李探花    时间: 2015-10-13 22:02
标题: 将 Objective-C 代码迁移到 Swift(Swift 2.0更新)
本文由CocoaChina翻译小组成员翻译自苹果官方文档:Using Swift with Cocoa and Objective-C:Swift and Objective-C in the Same Project
译者:xudeheng(GitHub)  校对:ChildhoodAndy(GitHub)
该系列文档内容已在 CocoaChina的GitHub主页 更新,欢迎小伙伴参与进来,阅读校正,补充遗漏。
若翻译和校对人员有遗漏,小伙伴一定要提醒CC更正啦。

本节内容包括:
迁移工作提供了一个重新审视现有 Objective-C 应用程序的机会,并通过 替换部分Swift 代码来更好的优化应用程序的架构,逻辑以及性能。换句话说,所谓增量app迁移,就是让你使用之前的工具-mix and match 来提升相互之间的可操作性。当要选择哪些特性和功能来用 Swift,哪些依然用 Objective-C 实现时,Mix-and-match让这一切变得简单。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内部机制完成的了,对开发者是透明的)
准备工作
开始工作
var enabled: Bool {    @objc(isEnabled) get {        /* ... */    }}
分别用func和class func来表示 instance(-) 和 class(+) 方法。
声明简单的宏来作为常量,将复杂的宏转换为函数。
大功告成
问题解决提示
尽管对于不同的项目,迁移的经历是不尽相同的,无论怎样,都有一些通用的步骤和工具能帮你解决代码迁移时碰到的问题:


作者: wx_D3aDvzRw    时间: 2015-10-13 23:31
哇哦  这个好高深啊
作者: faceseagod    时间: 2015-10-13 23:43
以后会很有用的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2