Swift与OC的相互调用

Swift与OC的相互调用,第1张

概述Swift经过四年的发展已经趋于成熟,是时候学一下了,感谢公司swift大佬的不吝赐教。心有所感记录一下,如有不足欢迎指正批评。 新建swift项目 新建Swift、OC类文件 可在新建OC文件时,建立桥接头文件,也可以自己新建桥接头文件。 如果没有创建桥接文件, 1.创建头文件: HeaderFileForSwiftAndOC.h 2.找到路径: 项目target -> Bulid Settin

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 UIKitclass 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 UIKitclass 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 -> OCswift func par = OC -> swift

? ?
? ?
? ?

友情链接: 技术博客 ???????简书主页
总结

以上是内存溢出为你收集整理的Swift与OC的相互调用全部内容,希望文章能够帮你解决Swift与OC的相互调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1024297.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存