OC与Swift的相互调用

这篇具有很好参考价值的文章主要介绍了OC与Swift的相互调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OC调用Swift方法

1、在 Build Settings 搜索 Packaging ,设置 Defines Module 为 YES

OC与Swift的相互调用,Objective-C,Swift,swift,oc,混编,iOS

 2、新建 LottieBridge.swift 文件,自动生成桥 ProductName-Bridging-Header.h

OC与Swift的相互调用,Objective-C,Swift,swift,oc,混编,iOS

 3、在 LottieBridge.swift 中,定义Swift类继承于OC类,声明 @objcMembers@objc ,实现相关方法

import UIKit
import Lottie

// 所有方法/属性声明
@objcMembers class MyLottieView: UIView {
    private let animationView = LottieAnimationView()

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.addSubview(animationView)
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        animationView.frame = self.bounds
    }

    public func setLottieFromURL(_ url: URL?) {
        if let url = url {
            LottieAnimation.loadedFrom(url: url) { [weak self] (animation) in
                self?.animationView.animation = animation
                self?.play()
            }
        }
    }

    public func play() {
        animationView.play()
    }
}

// 单个方法/属性声明
@objc class MyLottieView: UIView {
    private let animationView = LottieAnimationView()

    override init(frame: CGRect) {...}

    override func layoutSubviews() {...}

    @objc public func setLottieFromURL(_ url: URL?) {...}

    @objc public func play() {...}
}

4、在OC代码中引用 ProductName-Swift.h ,调用Swift相关方法

#import "ProductName-Swift.h"

- (void)swiftTest {
    MyLottieView *lottieView = [[MyLottieView alloc] initWithFrame:CGRectMake(100, 100, 320, 320)];
    [self.view addSubview:lottieView];
    
    NSURL *url = [NSURL URLWithString:@"https://assets9.lottiefiles.com/packages/lf20_N0y2Nj.json"];
    [lottieView setLottieFromURL:url];
}

Swift调用OC方法

1、在 ProductName-Bridging-Header.h 中加入OC的头声明

#import <YYKit/YYKit.h>
#import <AFNetworking/AFNetworking.h>

2、在Swift代码中调用OC的相关方法文章来源地址https://www.toymoban.com/news/detail-624172.html

private func OCTest() {
    let configuration = URLSessionConfiguration.default
    _ = AFURLSessionManager(sessionConfiguration: configuration)
}

到了这里,关于OC与Swift的相互调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • iOS从UI内存地址到读取成员变量(oc/swift)

    开发调试时,我们发现bug时常首先是从UI显示发现异常,下一步才会去定位UI相关连的数据的。XCode有给我们提供一系列debug工具,但是很多人可能还没有形成一套稳定的调试流程,因此本文尝试解决这个问题,顺便提出一个 暴论 :UI显示异常问题只需要两个步骤就能完成定位

    2023年04月19日
    浏览(83)
  • 【Swift/Objective-c】公司项目优化(二) - 下拉刷新抖动问题

    使用MJRefresh进行列表下拉刷新时,会出现列表上下颤抖问题 抖动的原因 我们先来看看在手松开之后我们对scrollView做了什么事情: ScrollViewDidEndDragging  =  setContentInset: 为了保证在“Loading”的状态下,下拉刷新控件可以展示,我们对contentInset做了修改,增加了inset的top. 那这样

    2024年01月20日
    浏览(42)
  • (flutter)黑苹果系统 Xcode iOS flutter 跑通真机模拟器 此oc clover 彼oc swift

    前段时间写了关于flutter的一系列基础知识和入门的一些坑,中间把ios端的项目编译部署等工作一带而过,这里我觉得还是有必要专门写一篇文章来讲讲这个,顺便把环境问题也一起说了。 我们都知道开发ios应用需要用到苹果电脑,即使flutter也不例外,flutter编译构建需要Xc

    2024年02月07日
    浏览(61)
  • Swift自动布局: SnapKit,相当于Objective-C中的Masonry。

    OC里面,我们常用Masonry,SDAutoLayout。 Swift里,我们常用SnapKit。 一、项目集成 Podfile 导入 使用 #注意# 对于如何使用SnapKit,这里简单讲一些常用的场景: 场景1: 在view中心添加一个长宽200的view 场景2: 在红色view里,添加一个子view,距离顶部30px 场景3: 添加两个view,高宽相等,

    2024年01月17日
    浏览(49)
  • 力扣题目学习笔记(OC + Swift)24. 两两交换链表中的节点

    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 首先定义递归终止条件: head.next不存,代表链表结束了 head.next.next不存在,表示不能两两配对 Swift OC 用到了解决链表问题的

    2024年02月04日
    浏览(43)
  • 关于Swift中闭包和OC中block对局部变量基本数据类型值的捕获

    翻了很多文章,发现关于Swift闭包关于上下文变量捕获这块,都没有说的很详细,或者Swift2这样的老版本已经不适用了,问了GPT也是和自己实验的结果不一样,记录下来。 首先,回顾一下OC中的block。 block对局部变量基本数据类型的捕获,是在创建时捕获了值,并保存副本在自

    2024年02月16日
    浏览(45)
  • Swift使用PythonKit调用Python

    打开Xcode项目。然后选择“File→Add Packages”,然后输入软件包依赖链接: ​https://github.com/pvieito/PythonKit.git https://github.com/kewlbear/Python-iOS.git     Python-iOS包允许在iOS应用程序中使用python模块。 用法: PythonKit是与Python交互的Swift框架。 用法: test.py swift:

    2024年02月10日
    浏览(47)
  • oc基本控件2

     

    2024年02月16日
    浏览(37)
  • oc UITableView 列表

         自定义view      优化代码。使用模型        

    2024年02月16日
    浏览(40)
  • oc基本控件3

    UIButton

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包