《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(很少用到,暂时忽略)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容