Swift与OC的混编

news2024/12/26 11:52:52

一些场面话

在一位前辈的博客里看到了关于iOS开发的各种语言的混编,浅浅学习一下怎么使用。不得不说语言混编的开发者是真的🐮🍺

Swift中用OC混编

  1. 新建一个Swift文件

请添加图片描述

  1. 创建一个OC的类
    选择language为OC
    请添加图片描述
    继续往下走,会跳出这个界面,直接选择蓝色这个就可以
    请添加图片描述
    然后项目里会出现这个文件
    请添加图片描述
  2. 引入我们新建的OC文件
    很简单,直接在Swift中使用OC-Bridging-Header文件中import我们的Test.h即可
  3. 在main中使用这个类测试一下
//
//  main.swift
//  Swift中使用OC
//
//  Created by 王璐 on 2023/7/11.
//

import Foundation

print("Hello, World!")
let test = Test()
test.print()


//  Test.h
//  Swift中使用OC
//
//  Created by 王璐 on 2023/7/11.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface Test : NSObject
- (void)print;
@end

NS_ASSUME_NONNULL_END


//  Test.m
//  Swift中使用OC
//
//  Created by 王璐 on 2023/7/11.
//

#import "Test.h"

@implementation Test
- (void)print{
    NSLog(@"test success");
}
@end
//OC-Bridging-Header
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "Test.h"

然后就能看到我们的代码运行结果,可以看到新建的OC的Test类是可以被使用的请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学无止境·MySQL⑤(存储函数、存储过程)

存储函数和存储过程试题 试题一1、创建一个可以统计表格内记录条数的存储函数 &#xff0c;函数名为count_sch()2、创建一个存储过程avg_sai&#xff0c;有3个参数&#xff0c;分别是deptno&#xff0c;job&#xff0c;接收平均工资&#xff0c;功能查询emp表dept为30&#xff…

C/C++用socket实现简单的TCP文件传输

C/C:用socket实现简单的TCP文件传输 网络中进程之间如何进行通信socket是什么socket的基本操作socket()函数bind()函数listen()、connect()函数accept()函数recv()/send()函数close()函数 TCP的“三次握手”“三次握手”的作用 TCP的“四次挥手”四次挥手的一些注意事项 代码实…

【附3.7安装包】python安装包下载及安装(超详细)

python3.7链接&#xff1a;https://pan.baidu.com/s/1Ett3XBMjWhkVOxkOU8NRqw?pwdqz3l 提取码&#xff1a;qz3l 今日资源&#xff1a;Python 适用系统&#xff1a;WINDOWS ​ Python 3.7.0 软件介绍&#xff1a; Python是一款通用型的计算机程序设计语言&#xff0c;Pytho…

【Leetcode】19. 删除链表的倒数第N个节点

给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 进阶&#xff1a;你能尝试使用一趟扫描实现吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&…

有没有线上兼职的副业,在家可以做什么赚钱

线上兼职副业啊&#xff0c;确实是一个不错的副业选择&#xff01;不过&#xff0c;我得提醒你&#xff0c;如果想要那种点一下鼠标就会下金币的神仙项目&#xff0c;这样的期待的话&#xff0c;那我只能告诉你&#xff0c;你可能走错地方了&#xff0c;在这帮不了你。 在线上赚…

LeetCode[470]用Rand7()实现Rand10()

难度&#xff1a;Medium 题目&#xff1a; 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数&#xff0c;试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。 你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random() 方法。 每个测试用例将有一个内部…

Python案例分析|基于模块的库存管理系统

本案例是通过一个多模块的库存管理系统案例&#xff0c;帮助大家深入了解基于模块的Python应用程序的开发流程。 01、库存管理系统API设计 本文实现一个简单的基于模块的库存管理系统。系统采用JSON文件来保存数据。产品信息设计为字典&#xff0c;键为sku_id&#xff08;产品…

软件工程——第13章软件项目管理知识点整理(完结)

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.管理的定义&#xff1f; 2.软件项目管理地位&#xff1f;&#xff08;重要性&#xff09; 3.软件项目管理过程从一组项目计划活动开始&#xff0c…

怎么制作查询成绩的网页?这个不用代码的方法你用过没?

作为一名老师&#xff0c;与家长沟通交流是日常工作中重要的一部分。特别是每次考完试后&#xff0c;家长都急切地想了解孩子的成绩&#xff0c;以便能及时了解孩子的学习情况并给予适当的支持和指导。然而&#xff0c;为了保护学生的隐私&#xff0c;大部分学校不公开张榜学生…

字符设备驱动led灯实验

应用程序代码 #include<stdio.h> #include<string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h>int main (int argc, const char *argv[]) {char buf[128] &quo…

马上就要到2023年秋招的黄金时期了,计算机专业面试究竟需要注意些什么?

说说自己&#xff0c;不算很突出。本人 17 年就读于一所普通的本科学校&#xff0c;20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂&#xff0c;现就职于某大厂安全实验室。 所以我还是比较有话语权的吧。 话不多说直接进入主题。 1.理论知识准备&#xff1a;复习计算…

驱动 day9 作业

要求&#xff1a; 现象 按下key1 led1灯的状态取反&#xff0c;number的值取反&#xff0c;然后应用程序打印从内核读到的number的值 应用程序test.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #incl…

Bash 有效电话号码

193 有效电话号码 给定一个包含电话号码列表&#xff08;一行一个电话号码&#xff09;的文本文件 file.txt&#xff0c;写一个单行 bash 脚本输出所有有效的电话号码。 你可以假设一个有效的电话号码必须满足以下两种格式&#xff1a; (xxx) xxx-xxxx 或 xxx-xxx-xxxx。&…

三维重建以及神经渲染中的学习(三)

三维重建以及神经渲染中的学习 公众号AI知识物语 本文内容为参加过去一次暑期课程学习时的笔记&#xff0c;浅浅记录下。 三维图形可控生成&#xff1a; 1&#xff1a;学习一个图形生成模型 2&#xff1a;具有可控三维变量&#xff1a;1物体形状&#xff1b;2物体位置&…

ScannerException: while scanning for the next token found character ‘@‘ 问题解决

问题描述 后端项目启动的时候报ScannerException: while scanning for the next token found character ‘‘ 异常&#xff0c;自己有些疑问&#xff0c;项目前一会都还可以&#xff0c;到报错的过程中&#xff0c;项目都没有动过。 解决办法 重新刷新项目就解决了。

RxSwift 使用方式

背景 最近项目业务&#xff0c;所有模块已经支持Swift混编开发&#xff0c;正在逐步使用Swift 方式进行开发新业务&#xff0c;以及逐步替换老业务方式进行发展&#xff0c;所以使用一些较为成熟的Swift 的三方库&#xff0c;成为必要性&#xff0c;经过调研发现RxSwift 在使用…

HarmonyOS/OpenHarmony应用开发-程序包多HAP机制(上)

一、多HAP机制设计目标 方便开发者模块化的管理应用&#xff0c;好的应用一般都是模块化管理&#xff0c;模块之间属于松耦合关系。多HAP方便了开发者将业务划分成多个模块&#xff0c;每个模块放到独立的HAP中。例如支付类应用&#xff0c;有统一的主界面&#xff0c;主界面管…

命令注入(Command Injection)安全漏洞(SQL注入、LDAP注入、OS命令注入、XPath注入、JavaScript注入)

文章目录 命令注入&#xff08;Command Injection&#xff09;发生场景示例防范手段其他类型命令注入漏洞1. SQL注入&#xff08;SQL Injection&#xff09;2. LDAP注入&#xff08;LDAP Injection&#xff09;3. OS命令注入&#xff08;OS Command Injection&#xff09;4. XP…

VectorCAST对外部函数打桩和查看覆盖率

一、对外部函数打桩 在单元测试中&#xff0c;如果要调用到外部函数调用的时候&#xff0c;就要对外部函数进行打桩。 对外部函数进行打桩的目的&#xff0c;一方面是为了验证外部函数接口的正确性&#xff0c;另一方面是对外部函数打桩 之后就可以自定义外部函数返回值。 对…

Unity5.4.1打砖块游戏Breakout_Game_Starter_Kit

Unity5.4.1打砖块游戏Breakout_Game_Starter_Kit 童年的回忆 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88042779