1、OC调用swift

  在OC项目中创建一个swift文件时,Xcode会提示 需要创建一个桥接文件,点击确定创建桥接文件,Xcode会自动创建一个桥接文件,名字:工程名-Bridging-Header.h。这个桥接文件就是 swift 调用 OC文件的时候使用的

1)进入TARGETS -> Build Settings -> Packaging 中,设置 Defines Module 为 YES;

 设置Product Module Name,也可以不设置,默认为工程的名字。

2)swift中创建一个类,该类必须要继承NSObject,要不在OC中没法使用

3)在OC需用到的swift文件中,导入文件"Product Module Name -Swift.h",因为Product Module Name 默认是工程的名字,所以直接导入 #import "工程名-Swift.h"

4) 编译,如果没报错就可以在OC中调用swift的类了

2、swift调用OC

  在swift项目中创建一个OC文件的时候,Xcode也会提示创建一个桥接文件,点击确定创建桥接文件,Xcode会自动创建一个桥接文件,名字:工程名-Bridging-Header.h。把swift需要用到的OC文件的头文件放到桥接文件里 工程名-Bridging-Header.h

 

3、自定义桥接文件

1)使用Header File 把里面的内容清空

2)文件名可以自定义,一般使用 工程名-Bridging-Header.h

3)在Build Setting 设置Objective-C Bridging Header为自定义的桥接文件相对于工程的绝对路径,也就是项目总文件夹的路径,如果在第一层,就直接写自定义的桥接文件的名,如果在下一层,文件夹/桥接文件

iOS 与 Swift 方法互相调用的更多相关文章

  1. 【iOS】UITableViewDelegate 方法没有调用

    可能原因:没有调用 reloadData 方法. [self.tableView reloadData];

  2. iOS开发Swift篇—(十)方法

    iOS开发Swift篇—(十)方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开头 ( ...

  3. 李洪强iOS开发Swift篇—10_方法

    李洪强iOS开发Swift篇—10_方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开 ...

  4. [iOS]为什么不要在init初始化方法里调用self.view

    首先.如果你调用self.view的时候,就会调用view的getter方法, 这个时候,view是空的,那么系统就会自动给你创建一个view,然后就会触发ViewDidLoad方法.那么这个时候,如 ...

  5. iOS里面消除使用代理调用方法时间警告问题

    iOS里面有三种调用函数的方式: 直接调用方法   [对象名 方法]; performselector:    [对象名 perform方法]; NSInvocation     调用 在使用代理调用 ...

  6. [ios]IOS的AppDelegate方法中的事件触发调用 以及 关闭 ios应用程序

    IOS的AppDelegate方法中的事件触发调用 参考:http://blog.sina.com.cn/s/blog_a573f7990101bphp.html //当应用程序将要进入非活动状态执行 ...

  7. iOS js oc相互调用(JavaScriptCore)---js调用iOS --js里面通过对象调用方法

    下来我们看第二种情况 就是js 中是通过一个对象来调用方法的. 此处稍微复杂一点我们需要使用到 JSExport 凡事添加了JSExport协议的协议,所规定的方法,变量等 就会对js开放,我们可以通 ...

  8. [Xcode 实际操作]九、实用进阶-(6)在Swift文件中调用Object-C的类和方法

    目录:[Swift]Xcode实际操作 本文将演示在Swift文件中调用Object-C的类和方法. 在项目文件夹[DemoApp]上点击鼠标右键 ->[New File]创建一个Object- ...

  9. iOS的layoutSubviews和drawRect方法何时调用

    layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触 ...

随机推荐

  1. netstat lsof ps 常用场景

    1.netstat 命令可以帮助检查本机的网络状况实战应用1:公司内部的一个老服务运行在192.168.1.1:50060上,服务将于一周之后停用,再在要查一下本机上有没有进行在调用该服务.[root ...

  2. 将dataframe分割为训练集和测试集两部分

    data = pd.read_csv("./dataNN.csv",',',error_bad_lines=False)#我的数据集是两列,一列字符串,一列为0,1的labelda ...

  3. [Android]使用Spring for Android改善数据交互流程

    如果开发一个和服务端有数据交互android应用,流程通常是这样的:界面收集用户数据之后,将它转换成JSON或者XML格式的字符串,以HTTP的方式提交给服务端,获得返回的文本数据,再将数据解析为ja ...

  4. lnmp 切换PHP版本,并且安装swoole

    lnmp 切换php版本 进入 lnmp 安装的目录,进入install.sh 的目录执行: sudo ./install.sh mphp 备注: find / -name install.sh 备注 ...

  5. cc.Mask. 纯代码拉伸遮罩

    var imgBoxInner = new cc.Node('imgBoxInner');var mask = imgBoxInner.addComponent(cc.Mask);mask.alpha ...

  6. net Core TOptions和热更新

    TOptions接口 net Core 项目有个appsettings.json文件,程序默认也是读取的这个文件,appsettings.json是一个配置文件 我们可以把appsettings.js ...

  7. 铁大Facebook隐私保护NABCD

    隐私保护功能: N:满足了用户保护自己隐私信息的需求 A:对每一项用户可能需要保护的信息,我们都会添加仅自己可见.指定人可见.部分人可见或所有人可见设置 B:让用户的信息受到更全面的保护,而不仅仅是对 ...

  8. linux下如何查看某软件是否已安装

      因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm - ...

  9. iOS组件化之路(一)

    写在最前 从开始学写代码,胡乱的看书,不懂如何写第一个程序,到开始写出第一个程序,这段道路有些漫长.慢慢开始自己独立的去分析给出的需求,到如何实现,最初的想法只是仅仅实现,到后来懂得如何利用自己技术和 ...

  10. 303. Range Sum Query - Immutable(动态规划)

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...