[Swift] 在 OC 工程中,创建和使用 Swift
1.我们创建了一个 Objective-C 的工程,叫做 playGround。

2.首先,我们需要在 工程的 Build Settings,找到 如中所示的项目,并将 Defines Module 的值设置为 YES。

3.然后我们创建 New File,创建一个使用 Swift 语言的 UIViewController。文件创建完成时会有一个弹窗,要选 Create Bridging Header。



4.然后会发现工程中除了Swift的controller,还多了一个 (工程名)-Bridging-Header.h 的文件,而且在下图所示的位置中应该出现这样两个文件名。
此处请额外留意这个 (工程名)-Swift.h ,后面会用到。

5.在要调用Swift的 OC 文件 中 Import 上一步提到的那个文件名,你会发现你已经可以使用你用 Swift 写的文件了。

如果需要在 OC 中使用 Swift 文件中的函数/属性,需要在函数或属性前增加 @objc
比如:

如果要写类似 OC 中的 +函数,要在swfit 的函数前加 class 前缀

[Swift] 在 OC 工程中,创建和使用 Swift的更多相关文章
- iOS开发--Swift 如何完成工程中Swift和OC的混编桥接(Cocoapods同样适用)
		
由于SDK现在大部分都是OC版本, 所以假如你是一名主要以Swift语言进行开发的开发者, 就要面临如何让OC和Swift兼容在一个工程中, 如果你没有进行过这样的操作, 会感觉异常的茫然, 不用担心 ...
 - oc工程中oc、swift混编代码打包成静态framework踩坑笔记
		
参考资料: https://www.jianshu.com/p/734341f7c242 https://www.jianshu.com/p/55038871e7de 两天时间探索,期间不知道遇到 ...
 - 在OC代码中创建Swift编写的视图控制器
		
背景 近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添 ...
 - 手动导入swift三方danielgindi/Charts到OC工程中教程
		
1.到github网址上下载zip压缩包https://github.com/danielgindi/Charts 2.然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让拖xcodeproj ...
 - 【转】在XCode工程中创建bundle包
		
http://www.giser.net/?p=859 Bundle Programming Guide: https://developer.apple.com/library/ios/docume ...
 - <转载>Win32控制台工程中创建窗口
		
有的时候,用控制台同步输出调试信息.程序状态量,比出Log.弹出报错对话框等方法来得有效.那么如何做到呢?如下: 简而言之,用GetModuleHandle()函数获得当前程序实例句柄,其它地方与常见 ...
 - iOS工程中创建pch文件
		
1.新建pch类文件 2.在工程配置中,Build Setting 下搜索"pre"寻找Apple LLVM6.1 - Language下的 Preflx Header 3.点开P ...
 - 关于在Xcode的OC工程中相对路径失败的原因
		
Xcode的工程生成的可执行文件不是默认在源文件同一个目录下面的,所以当可执行文件执行的时候,相对路径就不对了. 这一点用终端直接编译执行文件证明了这一点: clang -fobjc-arc -fra ...
 - 如何在IAR工程中创建和使用模板
		
路径为:Edit -> Code Templates -> Edit Templates 如下图: #TEMPLATE "&FileDeclare>&Fi ...
 - OC项目中使用Swift
		
1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC 2.在Person.sw ...
 
随机推荐
- SpringBoot实现电子文件签字+合同系统
			
本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...
 - opencv::parallel_for_使用说明
			
直接上代码 #include <opencv2/opencv.hpp> #include <iostream> #include <functional> usin ...
 - TCP/IP协议(7): NAT(Network Address Translation) —— 解决 IPv4 地址短缺的问题
			
TCP/IP协议(7): NAT(Network Address Translation) -- 解决 IPv4 地址短缺的问题 关于 NAT(Network Address Translation) ...
 - 【源码】RapidJSON 源码剖析(0):关于 RapidJSON
			
RapidJSON 源码剖析(0):关于 RapidJSON 为什么会有<RapidJSON 源码剖析>系列博文? 之前转载的 Technique to Read Source Code ...
 - UI自动化中上传与唤醒弹窗
			
本篇想谈的是在ui自动化中对上传的一些理解,干货满满. 一.是否有必要唤醒弹窗 以selenium为代表的库在进行文件上传时,是可以直接对输入框 "发送" 文件的,其send_ke ...
 - appium连接手机 adb调试 app自动化
			
一. 工具准备 jdk,java环境必备. android sdk,要使用内置的Android debug bridge,简称adb,调试手机用. appium,提供自动化服务,app自动化的核心库. ...
 - JZOJ 3423.Vani和Cl2捉迷藏 & [CTSC2008]祭祀
			
\(\text{Problem}\) 求一个 \(DAG\) 的最长反链 \(\text{Solution}\) 由 \(Dilworth\) 定理只最长反链等于最小链覆盖 而原图的链是可相交的,所以 ...
 - 如何在电脑上配置Vue开发环境
			
一,开发环境 : Node JS(npm) Visual Studio Code(前端IDE) 安装NodeJS 下载地址: nodejs中文网 Visual Studio Code 官网下载地址 h ...
 - STM32L431 移植 LiteOS 时 _ebss _Min_Heap_Size _Min_Stack_Size 未找到或未定义
			
将 LiteOS 移植完成之后,编译报如下错误: 环境 版本 Keil V5.37.0.0 Windows11 2022/12/22 ARM::CMSIS 5.9(2022-05-22) 开发板 ST ...
 - 🤗 PEFT: 在低资源硬件上对十亿规模模型进行参数高效微调
			
动机 基于 Transformers 架构的大型语言模型 (LLM),如 GPT.T5 和 BERT,已经在各种自然语言处理 (NLP) 任务中取得了最先进的结果.此外,还开始涉足其他领域,例如计算机 ...