Swift、Objective-C、Cocoa混合编程设置指南

 更新时间:2014年07月21日 10:55:25   投稿:junjie  
这篇文章主要介绍了Swift、Objective-C、Cocoa混合编程设置指南,需要的朋友可以参考下

Swift 被设计用来无缝兼容 Cocoa 和 Objective-C 。在 Swift 中,你可以使用 Objective-C 的 API(包括系统框架和你自定义的代码),你也可以在 Objective-C中 使用 Swift 的 API。这种兼容性使 Swift 变成了一个简单、方便并且强大的工具集成到你的 Cocoa 应用开发工作流程中。

这篇指南包括了三个有关兼容性的重要方面方便你更好地利用来开发 Cocoa 应用:
互用性 使你将 Swift 和 Objective-C 相接合,允许在 Objective-C 中使用 Swift 的 Class 并且当你在写 Swift 代码时利用熟悉的 Cocoa Class、Pattern、Practice。
混合和匹配 允许你创建结合了 Swift 和 Objective-C 文件的混合语言应用,他们能更彼此进行通信。
迁移 由于以上两点,从已经存在的 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。

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,这个过程影响他们的参数和返回值。导入过程可以做下面这些事情:

1.重映射确定的 Objective-C 类型到 Swift 中的同等类型,就像 id 到AnyObject
2.重映射确定的 Objective-C 核心类型到 Swift 中的替代类型, 就像NSString到String
3.重映射确定的 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

相关文章

  • Swift中初始化init的方法小结

    Swift中初始化init的方法小结

    Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,下面这篇文章主要给大家介绍了关于Swift中初始化init的相关资料,需要的朋友可以参考下。
    2018-04-04
  • Swift3.0剪切板代码拷贝及跨应用粘贴实现代码

    Swift3.0剪切板代码拷贝及跨应用粘贴实现代码

    这篇文章主要为大家详细介绍了Swift3.0剪切板代码拷贝及跨应用粘贴的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • SwiftUI 中创建反弹动画的实现

    SwiftUI 中创建反弹动画的实现

    这篇文章主要介绍了SwiftUI 中创建反弹动画的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 分享十条实用的Swift小提示

    分享十条实用的Swift小提示

    是时候使用易入手又全面的Swif语言为iOS和mac OS X做应用开发了,下面这篇文章主要给大家分享介绍了十条实用的Swift小提示的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-06-06
  • 如何使用Swift来实现一个命令行工具的方法

    如何使用Swift来实现一个命令行工具的方法

    这篇文章主要介绍了如何使用Swift来实现一个命令行工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • swift4 使用DrawerController实现侧滑菜单功能的示例代码

    swift4 使用DrawerController实现侧滑菜单功能的示例代码

    这篇文章主要介绍了swift4 使用DrawerController实现侧滑功能的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Swift5中从原始文本创建字符串的方法

    Swift5中从原始文本创建字符串的方法

    这篇文章主要给大家介绍了关于Swift5中从原始文本创建字符串的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Swift5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Swift实现可自定义分页宽度的UIScrollView

    Swift实现可自定义分页宽度的UIScrollView

    这篇文章主要为大家详细介绍了Swift实现可自定义分页宽度的UIScrollView,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Swift教程之字符串和字符详解

    Swift教程之字符串和字符详解

    这篇文章主要介绍了Swift教程之字符串和字符详解,本文讲解了字符串常量、初始化一个空串、变长字符串、字符串不是指针,而是实际的值、字符等内容,需要的朋友可以参考下
    2015-01-01
  • Swift、Objective-C、Cocoa混合编程设置指南

    Swift、Objective-C、Cocoa混合编程设置指南

    这篇文章主要介绍了Swift、Objective-C、Cocoa混合编程设置指南,需要的朋友可以参考下
    2014-07-07

最新评论