Swift与OC的相互调用
发布时间:2020-12-14 05:12:17 所属栏目:百科 来源:网络整理
导读:Swift经过四年的发展已经趋于成熟,是时候学一下了,感谢公司swift大佬的不吝赐教。心有所感记录一下,如有不足欢迎指正批评。 新建swift项目 新建Swift、OC类文件 可在新建OC文件时,建立桥接头文件,也可以自己新建桥接头文件。 如果没有创建桥接文件, 1.
新建swift项目新建Swift、OC类文件可在新建OC文件时,建立桥接头文件,也可以自己新建桥接头文件。 如果没有创建桥接文件,1.创建头文件: HeaderFileForSwiftAndOC.h 在swift文件与OC文件中填写代码OCOCClass.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 SwiftViewController.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 ? ?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |