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
? ?
? ?
? ?
友情链接:
技术博客 ???????简书主页
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。