我的Swift学习之旅--Swift和OC混合编程

用Swift和OC的混合编程开发框架和写一个全新的app会有稍微不同。

一  在app中使用混合编程

    1. 在swift项目中使用OC类  需要“Objective-C bridging header”文件

       Objective-C bridging header 文件的创建方法有两种

      (1)通过cmd+n快捷键创建新类的方法(只要项目类型(Swift或者OC)和将要创建的文件类型不同(Swift或者OC)系统会自动弹出框是否创建这个头文件选择Yes即可)。这种方法不用修改buildSetting设置而且只要项目中第一次出现swift和OC两种代码系统就会自动弹窗。

     如下图:

               

     (2)直接通过创建一个头文件的方法创建一个Objective-C bridging header文件(这种方法需要在buildSetting中将Objective-C Bridging header一项中添加你创建的头文件);

      如下图:

           此种方法的header文件的名字可以任取

   2.在OC文件中引入Swift文件

    因为在Swift中头文件被集成到Module中,module中的头文件我们是看不到的,但是呢它的名字我们可以知道。在target-buildsettng中找到packaging--product module name项可以看到这个module的名字。

    然后在需要导入swift的地方中import "product module name-swift.h"就可以了

    写完以后我们也可以cmd+鼠标左键查看这个.h文件了。

   总结如下图:

    

二.在框架中使用

   1.同一个框架中将OC导入Swift

   (1)在BuildingSetting中Packaging项确定Defines Module setting for framework项设为YES 如图:

    

        (2)将你要导入的OC的头文件放入umbrella header(这个东西就是和库同名的.h文件)

      这样放入umbrella header的所有的类都能在swift中使用而不需要再用import头文件了。

   2.在OC中引入Swift

    

(1)在BuildingSetting中Packaging项确定Defines Module setting for framework项设为YES 如图:

    

 (2) 在需要用到swift代码的OC.m文件中用#import <ProductName/ProductModuleName-Swift.h>

posted @ 2014-10-29 11:52  流浪先生  阅读(482)  评论(0)    收藏  举报