iOS开发之Swift调用Objective-C代码

移动开发 iOS
最近iOS开发之新编程语言Swift在iOS开发圈内反响比较大,国内外都有很多教程或小示例。虽然Swift这门语言仍然在不断的进化之中,而且变动还是比较大,苹果公司也不承诺目前所写代码会在将来兼容,但仍挡不住iOS开发者的热情。

[[120564]]

最近iOS开发之新编程语言Swift在iOS开发圈内反响比较大,国内外都有很多教程或小示例。虽然Swift这门语言仍然在不断的进化之中,而且变动还是比较大,苹果公司也不承诺目前所写代码会在将来兼容,但仍挡不住iOS开发者的热情。

为什么要使用Swift调用Objective-C代码

目前Swift语言所编写的应用才刚刚可以使用Xcode 6 GM版本提交,而Objective-C作为苹果的主开发语言存在了很多年了。目前尚无成熟的Swift库可用,所以当前编写应用可以说基本离不开调用Objective-C代码的情况。

如何去调用Objective-C代码

目前苹果给出的解决方案是使用一个Bridging-Header头文件,将所要使用的Objective-C代码的头文件引用进来。其中Xcode自动生成的头文件名形式会是以项目名-Bridging-Header.h这样的形式。但是,这个文件名格式并不是必须的,你可以自由定义。

Xcode自动生成方案

新建一个Swift项目,是不会自动生成调用Objective-C的头文件的。但是,可以在项目中,新建一个Objective-C的文件,这时候,Xcode会提示你,是否生成一个相应的头文件来使Swift调用。选择,这时候就是自动生成一个上面所说格式的头文件。你可以把新建的空Objective-C文件删除,只保留这个头文件。
把你后续想调用的Objective-C文件或库的头文件填写在这个桥接头文件里即可。

自定义方案

如果你在上一步选择取消了,那么后续新建Objective-C文件也不会再有提示。或者你想自定义一个文件名,而不使用Xcode生成的文件名。

选择新建一个Header文件,文件名随意。例如,可以是Hello.h
之后,在项目—TARGETS这里,找到Swift Compiler - Code Generation这一项,这里有一项,其键是Objective-C Bridging Header,在其值的地方,填入你的头文件信息即可。

  1. 1. 可以将相应头文件拖到填值的输入框中  
  2. 2. 手动填写头文件路径到输入框中,如: Hello/Hello.h 

这样,你就可以使用相应的头文件来引用Object-C的代码了。

原文出自:http://my.oschina.net/dmdgeeker/blog/318356

责任编辑:林师授 来源: DMDGeeker的博客
相关推荐

2011-07-28 15:11:23

iOS Objective-

2014-04-01 10:50:42

iOS开发runtimeObjective-C

2011-08-04 09:47:33

iOS Objective- JavaScript

2014-07-01 09:22:01

SwiftObjective-CiOS

2011-04-08 10:51:17

Objective-CiOS

2011-08-03 16:22:05

Objective-C CodeBlocks

2012-04-23 11:00:56

iOS开发Objective-CJavaScript

2015-06-08 10:02:40

swiftOC兼容

2017-04-07 16:00:59

SwiftObjective-CFramework

2011-05-11 14:06:49

Objective-C

2011-07-29 15:47:21

iPhone开发 Objective- C

2013-12-03 09:34:26

iOS应用开发实践高质量Objectiv

2014-06-05 13:54:03

SwiftiOSObjective-C

2014-09-24 11:15:05

Objective-CSwift

2014-05-21 14:03:57

Objective-C代码规范Code Style

2013-05-02 10:51:17

iOS开发Objective-C@property

2013-07-24 19:19:03

Objective-CiOS开发动态特性之protoc

2014-10-13 09:54:08

Objective-CSwift

2015-07-08 10:47:57

Using Swift CocoaObjective-C

2011-07-18 16:48:02

Cocoa Objective-
点赞
收藏

51CTO技术栈公众号