• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift与OC的相互调用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

   
   
   

友情链接:

技术博客        简书主页


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode1324.竖直打印单词|PrintWordsVertically发布时间:2022-07-13
下一篇:
[Swift]LeetCode526.优美的排列|BeautifulArrangement发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap