《Using Swift with Cocoa and Objective-C》读书笔记(1)

Mix and Match

(是指在一个project里面既有OC代码又有Swift代码)

1. app targets

1.1 Swift调用OC

当向OC项目中添加Swfit代码或者向Swfit项目中添加OC代码时,XCode会提示创建一个OC bridging header文件。Swift代码正是通过这个bridging header,去使用OC代码中的class或者enum。bridging header文件的命名规则是"product module name"加中划线"-"加"Bridging"加"Header"加".h",比如"Buyer-Bridging-Header.h"

在bridging header中,import每一个需要暴露给Swift代码的OC代码的头文件

在Build Setting->Swift Compiler - Code Generation中,确保OC bridging header有一个指向该bridging header的路径,这个路径是相对于工程的。(可以参考Info.plist路径的写法)

1.2 OC调用Swift

当向OC项目中添加Swfit代码时,XCode会自动创建一个umbrella header文件。umbrella header文件的命名规则是"product module name"加"-Swift.h"。这个umbrella header包含了Swift代码中所有的public属性。但是,private属性中的@IBAction、@IBOutlet、@objc可以被access;test unit target可以access到Swift代码中的internal属性(加@testable标识)。

If you use your own OC types in your Swfit code, make sure to import the OC headers for those types before importing umbrella header into the OC.m file you want to access the Swfit code from.在OC.m中,把import自定义的OC type对应的头文件的语句写在import umbrella header的语句之前。

2. framework targets(很少用到,暂时忽略)

你可能感兴趣的:(《Using Swift with Cocoa and Objective-C》读书笔记(1))