以前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 可是在OC中调用swift代码则不是那么的和谐,网络上不少文章业已经有点陈旧。记录步骤以下:html
(1)启动 xcode -> 建立singleView新项目 -> 命名为: objcASwiftgit
(2)建立 NextViewController.swift 继承于 UIViewControllerobjective-c
(3)建立 Demo.swift 继承于 NSObjectswift
注意勾选建立 ** -Briging-Header.h文件xcode
(1)导入头文件。编译后导入,不然可能会提示错误;编写时或不会自动提示代码,属正常状况网络
(2) viewcontroller 页面建立点击事件code
- (IBAction)demoTouchAction:(UIButton *)sender { NextViewController *next = [[NextViewController alloc]init]; //设置next subTitle 属性 next.subTitle = @"subTitle"; // 调用 实例方法 [next sayHello]; // 页面跳转 [self presentViewController:next animated:YES completion:nil]; }
适当位置添加 public 和 @objc 关键字,用以向objective-c暴露接口!htm
import UIKit class Demo: NSObject { var name :String?; // oc项目中swift文件相互调用,并不须要public 和 @objc关键字 func printName() -> Void { print(self.name) } }
至此基本完成~blog
1 OC项目中调用Swift文件,关键在于项目头文件 programName-Swift.h 的引入。继承
2 其次在于链接文件 programName-Bridging-Header.h 的生成。
3 最后在swift文件的对应处添加 public @objc 等关键字,用以将相关方法暴露给objc。