Swift经过四年的发展已经趋于成熟,是时候学一下了,感谢公司swift大佬的不吝赐教。心有所感记录一下,如有不足欢迎指正批评。

新建swift项目

新建Swift、OC类文件

可在新建OC文件时,建立桥接头文件,也可以自己新建桥接头文件。

如果没有创建桥接文件,

1.创建头文件: HeaderFileForSwiftAndOC.h

2.找到路径: 项目target -> Bulid Settings -> Objective-C Bridging Header

3.填写:$(SWIFT_MODULE_NAME)/HeaderFileForSwiftAndOC.h

在swift文件与OC文件中填写代码

OC

OCClass.h

#import <Foundation/Foundation.h>

@interface OCClass : NSObject
- (void)ocFunction:(NSString *)str;
@end

OCClass.m

#import "OCClass.h"
#import "SwiftAndOC-Swift.h"//新建swift项目时默认创建,包含了所有swift文件引用
@implementation OCClass
- (void)ocFunction:(NSString *)str{
NSLog(@"\noc func par - str = %@",str);
SwiftObj *swiftObj = [[SwiftObj alloc]init];
[swiftObj swiftFuncWithPar:@"OC -> swift"];
}
@end

Swift

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
super.viewDidLoad() let ocObj = OCClass();
ocObj.ocFunction("swift -> OC");
// Do any additional setup after loading the view, typically from a nib.
} override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

SwiftObj.swift

import UIKit

class SwiftObj: NSObject {
@objc func swiftFunc(par:String){//@objc 很重要 必须写 不然oc调用时找不到该方法
print("swift func par = \(par)");
}
}

运行项目

控制器打印

2018-06-20 18:01:19.346937+0800 SwiftAndOC[6803:243390]
oc func par = swift -> OC
swift func par = OC -> swift

   

   

   

友情链接:

技术博客        简书主页

Swift与OC的相互调用的更多相关文章

  1. 苹果系统开发中的混合编程(2):Swift和C的相互调用

      在进行Swift和C之间的相互调用时,有必要先了解一下两种语言之间的类型转换关系:   C 类型 Swift 类型 bool CBool char, signed char CChar unsig ...

  2. Swift和OC相互调

    在项目中不免会有多中语言开发, 不说别的就我个人而言, 之前一直都是用 OC 写的代码, 封装很多工具类, 而苹果新出来 Swift , 现在项目在向 Swift 过渡, 或者新项目是 Swift , ...

  3. JS与原生OC/Swift相互调用总结

    代码地址如下:http://www.demodashi.com/demo/12754.html JS-OC-Swift JS和OC/Swift相互调用,主要总结了JS和OC交互的三种方式 1.使用UI ...

  4. OC与swift相互调用

    一.OC调用swift文件 二.swift调用OC文件 三.注意和总结 添加: 四.自定义桥接文件 一.OC调用swift文件 在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一 ...

  5. [Swift]在Swift项目中创建桥接头文件,Swift文件和Objective-C文件相互调用

    创建一个Swift项目[demo],以下内容Swift文件和Objective-C文件相互调用都是在Swift项目中. 一.Swift文件调用Objective-C文件 新建文件夹[SupportFi ...

  6. JS代码和OC代码的相互调用

    JS调用OC 很多应用里面或多或少的调用了网页,来达到绚丽的效果,所谓的JS调用OC.....举个例子吧,网页上有个按钮 点击按钮跳转界面,跳转的动作由OC的代码实现. OC调用JS 还是举个例子,我 ...

  7. Lua 与 OC 相互调用

    本文主要讲如何完成lua和object-c的相互调用.       lua是一种脚本语言,可以方便的移植到各种宿主语言中,并且可以支持热更新,在游戏开发中也能当做主要的语言来编写游戏的逻辑,但是要接入 ...

  8. iOS JS 和 OC交互 / JS 和 native 相互调用

    现在app 上越来越多需求是通过UIWebView 来展示html 或者 html5的内容, js 和 native OC代码交互 就非常常见了. js 调用 native  OC代码 第一种机制 ( ...

  9. 转载 OS js oc相互调用(JavaScriptCore) ---js调用iOS ---js里面直接调用方法

    OS js oc相互调用(JavaScriptCore)   接着上节我们讲到的iOS调用js 下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用 ...

随机推荐

  1. PostgreSQL查询长连接

    apple=# select pid, backend_start, xact_start, query_start, waiting, state, backend_xid from pg_stat ...

  2. 360插件化Replugin爬坑之路

    前言 继上次爬完了热修复的坑位,中途爬了各种各样的坑.今天我们来说说插件化Replugin的坑位.Replugin刚出的时候我就看过了.第一次看的时候可能心态不好.没看懂= =第二次重头在看,发现蛮简 ...

  3. 让黑白的SecureCRT彩色起来

    让黑白的SecureCRT彩色起来,如图仿真设置如下:  

  4. [UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 [UIApplication sharedApplication].idleTimerDisabled=NO;自动锁屏

    [UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 [UIApplication sharedApplication].idle ...

  5. .net常用正则表达式小结

    好久没有些博客了,今天就随便写点工作当中遇到的一些问题.正则表达式估计大家在开发的过程中都会遇到,下面是我平时用到的以及自己整理的一些常用的正则表达式,供大家学习和参考. "^\d+$&qu ...

  6. python3 读入一个jpg格式的图片,并转换长宽像素个数,然后进行绘制

    import matplotlib.pyplot as plt from scipy import ndimage import numpy as np import scipy fname=&quo ...

  7. imshow(K)和imshow(K,[]) 的区别

    参考文献 imshow(K)直接显示K:imshow(K,[])显示K,并将K的最大值和最小值分别作为纯白(255)和纯黑(0),中间的K值映射为0到255之间的标准灰度值.

  8. start-stop-daemon自动启动、关闭后台程序参数传递

    /************************************************************************* * start-stop-daemon自动启动.关 ...

  9. Spring学习-学习路线

    Spring的IOC Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合

  10. 浅析网站建设的PHP,JAVA语言分析

    编程绝对是一件不轻松的活儿.随着电子商务在国内成功的推广,京东.苏宁等大型B2C综合网上商城的成功运营,一批批以产业分类的独立网店也如火如荼发展起来.伴随着这股热潮,网店系统等相关衍生开店平台行业也出 ...