From 392309921a2f200793b678407d548cb8ac383506 Mon Sep 17 00:00:00 2001 From: haoio Date: Thu, 5 Jun 2014 00:55:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=20Using=20?= =?UTF-8?q?Swift=20with=20Cocoa=20and=20Objective-C=20=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chapter3/DAG_2x.png | Bin 0 -> 25673 bytes ...ift and Objective-C in the Same Project.md | 234 ++++++++++++++++++ .../chapter3/bridgingheader_2x.png | Bin 0 -> 90275 bytes 3 files changed, 234 insertions(+) create mode 100644 Using Swift with Cocoa and ObjectiveC/chapter3/DAG_2x.png create mode 100644 Using Swift with Cocoa and ObjectiveC/chapter3/Swift and Objective-C in the Same Project.md create mode 100644 Using Swift with Cocoa and ObjectiveC/chapter3/bridgingheader_2x.png diff --git a/Using Swift with Cocoa and ObjectiveC/chapter3/DAG_2x.png b/Using Swift with Cocoa and ObjectiveC/chapter3/DAG_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c15390bf0e9456e202a042294d30c8fc83a258a GIT binary patch literal 25673 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 literal 0 HcmV?d00001 diff --git a/Using Swift with Cocoa and ObjectiveC/chapter3/Swift and Objective-C in the Same Project.md b/Using Swift with Cocoa and ObjectiveC/chapter3/Swift and Objective-C in the Same Project.md new file mode 100644 index 00000000..c160cd20 --- /dev/null +++ b/Using Swift with Cocoa and ObjectiveC/chapter3/Swift and Objective-C in the Same Project.md @@ -0,0 +1,234 @@ +--- [@haolloyin](https://github.com/haolloyin) 翻译自苹果官方文档 [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_75) 的 [Mix and Match](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html) 章节 + + + +# Swift and Objective-C in the Same Project - 在同个工程中使用 Swift 和 Objc + +Swift 与 Objc 的兼容能力使你可以在同一个工程中同时使用两种语言。你可以用这种叫做 `mix and match` 的特性来开发基于混合语言的应用,可以用 Swfit 的最新特性实现应用的一部分功能,并无缝地并入已有的 Objc 的代码中。 + +## Mix and Match 概述 + +Objc 和 Swift 文件可以在一个工程中并存,不管这个工程原本是基于 Objc 还是 Swift。你可以直接往现有工程中简单地添加另一种语言的源文件。这种自然的工作流使得创建混合语言的应用或框架 target,与用单独一种语言时一样简单。 + +混合语言的工作流程只有一点点区别,这取决于你是在写应用还是写框架。下面描述了普通的用两种语言在一个 target 中导入模型的情况,后续章节会有更多细节。 + +![DAG_2x.png](https://github.com/haolloyin/the-swift-programming-language-in-chinese/blob/master/Using Swift with Cocoa and ObjectiveC/chapter3/DAG_2x.png?raw=true) + +## Importing Code from Within the Same App Target - 在同个应用的 target 中导入 + +如果你在写混合语言的应用,可能需要用 Swift 代码访问 Objc 代码,或者反之。下面的流程描述了在非框架 target 中的应用。 + +### Importing Objective-C into Swift - 将 Objc 导入 Swift + +在一个应用的 target 中导入一些 Objc 文件供 Swift 代码使用时,你需要依赖与 Objc 的桥接头文件(`bridging header`)来暴露给 Swift。当你添加 Swift 文件到现有的 Objc 应用(或反之)时,Xcode 会自动创建这些头文件。 + +![bridgingheader_2x.png](https://github.com/haolloyin/the-swift-programming-language-in-chinese/blob/master/Using Swift with Cocoa and ObjectiveC/chapter3/bridgingheader_2x.png?raw=true) + +如果你同意,Xcode 会在源文件创建的同时生成头文件,并用 product 的模块名加上 `-Bridging-Header.h` 命名。关于 product 的模块名,详见 [Naming Your Product Module](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_85)。 + +你应该编辑这个头文件来对 Swift 暴露出 Objc 代码。 + +##### To import Objective-C code into Swift from the same target + + +1.在 Objc 桥接头文件中,import 任何你想暴露给 Swift 的头文件,例如: + +``` + // OBJECTIVE-C + + #import "XYZCustomCell.h" + #import "XYZCustomView.h" + #import "XYZCustomViewController.h" +``` + +2.确保在 `Build Settings` 中 Objc 桥接头文件的 `build setting` 是基于 Swfit 编译器,即 `Code Generation` 含有头文件的路径。这个路径必须是头文件自身的路径,而不是它所在的目录。 + +这个路径应该是你工程的相对路径,类似 `Info.plist` 在 `Build Settings` 中指定的路径。在大多数情况下,你不需要修改这个设置。 + +在这个桥接头文件中列出的所有 public 的 Objc 头文件都会对 Swift 可见。之后当前 target 的所有 Swift 文件都可以使用这些头文件中的方法,不需要任何 import 语句。用 Swift 语法使用这些 Objc 代码,就像使用系统自带的 Swift 类一样。 + +``` + // SWIFT + + let myCell = XYZCustomCell() + myCell.subtitle = "A custom cell" +``` + +### Importing Swift into Objective-C - 将 Swift 导入 Objc + +向 Objc 中导入Swift 代码时,你依赖 Xcode 生成的头文件来向 Objc 暴露 Swift 代码。这是自动生成 Objc 头文件,它包含了你的 target 中所有 Swift 代码中定义的接口。可以把这个 Objc 头文件看作 Swift 代码的 `umbrella header`。它以 product 模块名加 `-Swift.h` 来命名。关于 product 的模块名,详见 [Naming Your Product Module](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_85)。 + +你不需要做任何事情来生成这个头文件,只需要将它导入到你的 Objc 代码来使用它。注意这个头文件中的 Swift 接口包含了它所使用到的所有 Objc 类型。如果你在 Swift 代码中使用你自己的 Objc 类型,确保先将对应的 Objc 头文件导入到你的 Swift 代码中,然后才将 Swift 自动生成的头文件导入到 Objc .m 源文件中来访问 Swift 代码。 + +##### To import Swift code into Objective-C from the same target + +- 在相同 target 的 Objc .m 源文件中,用下面的语法来导入Swift 代码: + +``` + // OBJECTIVE-C + + #import "ProductModuleName-Swift.h" +``` + +target 中任何 Swift 文件将会对 Objc .m 源文件可见,包括这个 import 语句。关于在 Objc 代码中使用 Swift 代码,详见 [Using Swift from Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_84)。 + + | 导入到 Swift | 导入到 Objc +---------- | ---------- | ---------- +Swift 代码 | 不需要import语句 | #import +Objc 代码 | 不需要import语句;需要 Objc `umbrella头文件` | #import "Header.h" + +## Importing Code from Within the Same Framework Target - 在同个 Framework 的 target 中导入 + +如果你在写一个混合语言的框架,可能会从 Swift 代码访问 Objc 代码,或者反之。 + +### Importing Objective-C into Swift - 将 Objc 导入 Swift + +要将一些 Objc 文件导入到同个框架 target 的 Swift 代码中去,你需要将这些文件导入到 Objc 的 `umbrella header` 来供框架使用。 + +##### To import Objective-C code into Swift from the same framework + +确保将框架 target 的 `Build Settings > Packaging > Defines Module` 设置为 `Yes`。然后在你的 `umbrella header` 头文件中导入你想暴露给 Swift 访问的 Objc 头文件,例如: + +``` + // OBJECTIVE-C + #import + #import + #import +``` + +Swift 将会看到所有你在 `umbrella header` 中公开暴露出来的头文件,框架 target 中的所有 Swift 文件都可以访问你 Objc 文件的内容,不需要任何 import 语句。 + +``` + // SWIFT + + let myCell = XYZCustomCell() + myCell.subtitle = "A custom cell" +``` + +### Importing Swift into Objective-C - 将 Swift 导入 Objc + +要将一些 Swift 文件导入到同个框架的 target 的 Objc 代码去,你不需要导入任何东西到 `umbrella header` 文件,而是将 Xcode 为你的 Swift 代码自动生成的头文件导入到你的 Obj .m 源文件去,以便在 Objc 代码中访问 Swift 代码。 + +##### To import Swift code into Objective-C from the same framework + +确保将框架 target 的 `Build Settings > Packaging` 中的 `Defines Module` 设置为 `Yes`。用下面的语法将 Swift 代码导入到同个框架 target 下的 Objc .m 源文件去。 + +``` + // OBJECTIVE-C + #import +``` + +这个 import 语句所包含的 Swift 文件都可以被同个框架 target 下的 Objc .m 源文件访问。关于在 Objc 代码中使用 Swift 代码,详见 [Using Swift from Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_84)。 + + | 导入到 Swift | 导入到 Objc +---------- | ---------- | ---------- +Swift 代码 | 不需要import语句 | #import +Objc 代码 | 不需要import语句;需要 Objc `umbrella头文件` | #import "Header.h" + + +## Importing External Frameworks - 导入外部 Framework + +你可以导入外部框架,不管这个框架是纯 Objc,纯 Swift,还是混合语言的。import 外部框架的流程都是一样的,不管这个框架是用一种语言写的,还是包含两种语言。当你导入外部框架时,确保 `Build Setting > Pakaging > Defines Module` 设置为 `Yes`。 + +用下面的语法将框架导入到不同 target 的 Swift 文件中: + +``` + // SWIFT + + import FrameworkName +``` + +用下面的语法将框架导入到不同 target 的 Objc .m 文件中: + +``` + OBJECTIVE-C + + @import FrameworkName; +``` + +Import into Swift +Import into Objective-C +Any language framework +import FrameworkName +@import FrameworkName; + + +## Using Swift from Objective-C - 在 Objc 中使用 Swift + +当你将 Swift 代码导入 Objc 文件之后,用普通的 Objc 语法使用 Swift 类。 + +``` +// OBJECTIVE-C + +MySwiftClass *swiftObject = [[MySwiftClass alloc] init]; +[swiftObject swiftMethod]; +``` + +Swift 的类或协议必须用 `@objc attribute` 来标记,以便在 Objc 中可访问。这个 attribute 告诉编译器这个 Swift 代码可以从 Objc 代码中访问。如果你的 Swift 类是 Objc 类的子类,编译器会自动为你添加 `@objc attribute`。详见 [Swift Type Compatibility](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-XID_36)。 + +你可以访问 Swift 类或协议中用 `@objc attribute` 标记过东西,只要它和 Objc 兼容。不包括一下这些 Swift 独有的特性: + +Generics - 范型 + +Tuples - 元组 + +Enumerations defined in Swift - Swift 中定义的枚举 + +Structures defined in Swift - Swift 中定义的结构体 + +Top-level functions defined in Swift - Swift Swift 中定义的顶层函数 + +Global variables defined in Swift - Swift 中定义的全局变量 + +Typealiases defined in Swift - Swift 中定义的类型别名 + +Swift-style variadics + +Nested types - 嵌套类型 + +Curried functions - 柯里化后的函数 + +例如带有范型类型作为参数,或者返回元组的方法不能在 Objc 中使用。 + +为了避免循环引用,不要将 Swift 代码导入到 Objc 头文件中。但是你可以在 Objc 头文件中前向声明(`forward declare`)一个 Swift 类来使用它,然而,注意**不能在 Objc 中继承一个 Swift 类。** + +### To reference a Swift class in an Objective-C header file + +这样前向声明 Swift 类: + +``` +// OBJECTIVE-C +// MyObjcClass.h + +@class MySwiftClass; + +@interface MyObjcClass : NSObject +- (MySwiftClass *)returnSwiftObject; +/* ... */ +@end +``` + +## Naming Your Product Module - Product 模块命名 + +Xcode 为 Swift 代码生成的头文件的名称,以及 Xcode 创建的 Objc 桥接头文件名称,都是从你的 product 模块名生成的。默认你的 product 模块名和 product 名一样。然而,如果你的 product 名有特殊字符(nonalphanumeric,非数字、字母的字符),例如点号,那么它们会被下划线(`_`)替换之后作为你的 product 模块名。如果 product 名以数字开头,那么第一个数字会用下划线替换掉。 + +你可以给 product 模块名提供一个自定义的名称,Xcode 会用这个名称来命名桥接的和自动生成的头文件。你只需要在修改在 `build setting` 中的 `Product Module Name` 即可。 + + +## Troubleshooting Tips and Reminders + +- 把 Swift 和 Objc 文件看作相同的代码集合,并注意命名冲突; + +- 如果你用框架,确保 `Build Setting > Pakaging > Defines Module` 设置为 `Yes`; + +- 如果你使用 Objc 桥接头文件,确保在 `Build Settings` 中 Objc 桥接头文件的 `build setting` 是基于 Swfit 编译器,即 `Code Generation` 含有头文件的路径。这个路径必须是头文件自身的路径,而不是它所在的目录。 + +- Xcode 使用你的 product 模块名,而不是 target 名来命名 Objc 桥接头文件和为 Swift 自动生成的头文件。详见 [Naming Your Product Module](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_85); + +- 为了在 Objc 中可用, Swift 类必须是 Objc 类的子类,或者用 `@objc` 标记; + +- 当你将 Swift 导入到 Objc 中时,记住 Objc 不会将 Swift 独有的特性翻译成 Objc 对应的特性。详见列表 [Using Swift from Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_84); + +- 如果你在 Swift 代码中使用你自己的 Objc 类型,确保先将对应的 Objc 头文件导入到你的 Swift 代码中,然后才将 Swift 自动生成的头文件 import 到 Objc .m 源文件中来访问 Swift 代码。 + + diff --git a/Using Swift with Cocoa and ObjectiveC/chapter3/bridgingheader_2x.png b/Using Swift with Cocoa and ObjectiveC/chapter3/bridgingheader_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0e678eec5571e04f9156d3e3a8d275a4294ab367 GIT binary patch literal 90275 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