Swift与OC的混编

一些场面话

在一位前辈的博客里看到了关于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 Foundationprint("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;
@endNS_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.hqwc.cn/news/18677.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css基础知识二十:说说对Css预编语言的理解?有哪些区别?

一、是什么 Css 作为一门标记性语言&#xff0c;语法相对简单&#xff0c;对使用者的要求较低&#xff0c;但同时也带来一些问题 需要书写大量看似没有逻辑的代码&#xff0c;不方便维护及扩展&#xff0c;不利于复用&#xff0c;尤其对于非前端开发工程师来讲&#xff0c;往…

【Spring Boot】Spring Boot日志详情:基于lombok的日志输出

文章目录 1. 何为日志文件&#xff1f;2. 日志文件的作用3. 日志文件的基本使用3.1 Spring Boot中的日志3.2 自定义日志打印 4 日志级别4.1 日志级别的作用4.2 日志级别的分类4.3 日志级别的设置 5 日志持久化6 基于lombok的日志输出6.1 lombok 简单输出日志案例6.2 浅谈 lombo…

【C++ OJ练习】7.字符串相加

1.题目链接 力扣 2.解题思路 拿到每个字符后 减去字符0 转化成对应的数字 再相加即可 倒着加 因为有进位的情况 最后头插或 者尾插加逆置 3.代码 class Solution { public:string addStrings(string num1, string num2) {//倒着往回加int end1 num1.size() - 1;int end2…

深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

深度学习笔记之Transformer——PositionEmbedding铺垫&#xff1a;Skipgram与CBOW模型 引言回顾&#xff1a; Word2vec \text{Word2vec} Word2vec模型补充&#xff1a;关于 Word2vec \text{Word2vec} Word2vec的一些说明 2023 / 7 / 10 2023/7/10 2023/7/10补充&#xff1a;关于…

六、consumer源码解读

Consumer源码解读 本课程的核心技术点如下&#xff1a; 1、consumer初始化 2、如何选举Consumer Leader 3、Consumer Leader是如何制定分区方案 4、Consumer如何拉取数据 5、Consumer的自动偏移量提交 Consumer初始化 从KafkaConsumer的构造方法出发&#xff0c;我们跟踪到…

设计模式——迭代器模式

迭代器模式&#xff08;落没的设计模式&#xff09; 定义 它提供一种方法访问一个容器对象中各个元素&#xff0c;而又不需要暴露该对象的内部细节。 迭代器是为容器服务的&#xff0c;能容纳元素的对象可以称为容器&#xff0c;例&#xff1a;List、Set、Map 迭代器模式&a…

操作系统实战45讲|01程序的运行过程、02几行汇编几行C

配置环境遇到的问题 virtualBox实现windows和Ubuntu之间的复制粘贴 1.修改设置&#xff0c;设置共享粘贴板为双向 或者在运行的虚拟机的窗口中进行设置 2.安装virtualbox增强功能 (1)直接联网安装 设备----安装增强功能 3.补充 windows中终端和文档复制的快捷键为ctrlc&…

Element Plus el-table 自定义合并行和列

原文链接&#xff1a;Element Plus el-table 自定义合并行和列 前言 目标效果是将表格行数据中某个属性值相同的项合并到一起&#xff0c;效果如下&#xff1a; <el-table :data"tableData" :span-method"spanMethod" style"width: 100%">…

Set up the compilation environment for ESP8266-RTOS-SDK using Git on Windows

Software to be installed&#xff1a; Git BashPython Environment&#xff0c;ESP8266 Master require Python v3 environment. Please check “add to PATH” while installing Open Git Bash&#xff0c;Enter a local disk&#xff0c;create an empty folder, enter the …

JVM常用参数

以下是 JVM 常用参数的配置 内存相关参数&#xff1a; -Xmx&#xff1a;指定 JVM 最大可用内存&#xff0c;例如 -Xmx2g 表示最大可用内存为 2GB。 -Xms&#xff1a;指定 JVM 初始内存大小&#xff0c;例如 -Xms512m 表示初始内存为 512MB。 -XX:MaxPermSize&#xff1a;指定…

Leap AI + Python 开发绘图应用

使用python语言&#xff0c;并借助Leap AI网站的api key&#xff0c;可以轻松实现AI绘图功能。使用时&#xff0c;用户只要输入prompt提示词&#xff0c;几秒钟之内服务器就能生成图片并返回图片的链接地址。开发人员可以利用这个功能开发个性化的绘图软件&#xff0c;或者整合…

Redis常见命令和使用示例

目录 1.使用官方文档学习redis 2.核心命令 SET GET 3.全局/通用命令 KEYS EXISTS DEL EXPIRE TTL TYPE 1.使用官方文档学习redis redis官网 点击搜索&#xff0c;输入&#xff0c;比如输入ping&#xff0c;会显示Commands,是一个命令&#xff0c;点击ping&#xff…