在项目里交叉使用Swift和OC
Swift and Objective-C in the Same Project
在项目里交叉使用Swift和OC
Swift与OC的兼容性使得你能够在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这样的方式能够一边使用享受新语言的高速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,事实上也就那么回事),无论项目最初是用OC编写的还是新建的Swift项目,都能够在这个项目里用OC和Swift混合继续开发
Importing Objective-C into Swift
在Swfit代码中加入OC文件的时候,须要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自己主动帮你创建(项目是使用Swift语言创建的),点击yes,Xocde就会在新建OC文件的同一时候帮我们新建一个 xxx-Bridging-Header.h
文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才干让Swfit代码调用OC代码
在项目的xxx-Bridging-Header.h文件中,加入须要在Swift里调用的OC文件,然后就能够在Swfit代码中调用了
OBJECTIVE-C
#import "XYZCustomCell.h"
#import "XYZCustomView.h"
#import "XYZCustomViewController.h"
SWIFT
let myCell = XYZCustomCell()
myCell.subtitle = "A custom cell"
在项目的 Build Settings 选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是文件夹。
Importing Swift into Objective-C
当在OC里调用Swift中的代码时,须要依赖一个xcode自己主动生成的头文件,这个自己主动生成的头文件定义了项目中全部的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不须要再做不论什么事情了,你仅仅须要在OC代码里导入这么一个文件,就能够跟没事一样拿随意一个Swift中的代码用了
#import “ProductModuleName-Swift.h”
以上归纳为一个表
| 调用Swift代码 | 调用OC代码 | |
| Swift代码 | 无需声明 | #import "ProductModuleName-Swift.h” |
| OC代码 | 依赖bridging header文件 | #import "Header.h” |
在项目里交叉使用Swift和OC的更多相关文章
- 在项目里交叉使用Swift和OC【转】
Swift and Objective-C in the Same Project在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称 ...
- 怎么让一个项目里swift与OC可以兼容混合开发?
在苹果推出了swift语言之后,很多人担心OC很快会被取代,但是苹果方面表示2年内不会摒弃OC.但现在也快了啊.有的开发团队已经开始基于swift开发,但是有很多旧的框架还没来得及用swift写出来, ...
- 在OC项目中实现swift与oc混编 相互引用
--------------------------------------------------------Begin--------------------------------------- ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者
Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...
- iOS开发--混编篇&swift与OC混合使用
Swift与OC混合使用 swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编. ...
- iOS8开发~Swift(五)Swift与OC混编
一.概要 首先看<The Swift Programming Language>中提到"Swift's compatibility with Objective-C lets y ...
- 在swift调用OC的第三方库
https://www.jianshu.com/p/4799ac1d7dce 2017.06.02 23:55* 字数 275 阅读 1619评论 0喜欢 3 环境:xcode 8.3.2 系统: M ...
- Swift与OC区别
一.Swift与OC区别: 1.swift程序的入口是UIApplicationMain; 2.OC的类是以.h和.m组成的;swift是一.swift结尾的; 3.OC的类是以@interface和 ...
随机推荐
- ASP.NET - 多文件上传,纯代码,不使用插件
解决方案: 前段代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Mu ...
- Boost Thread学习笔记四
barrierbarrier类的接口定义如下: 1 class barrier : private boost::noncopyable // Exposition only 2 { 3 pub ...
- clear_logs.py修改
#!/usr/bin/env python#encoding=utf-8"""清空最后修改时间跑今天7天以前的所有文件"""#指定监控的路径 ...
- OO alv report
DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid ,"ALV对象 gt_fieldcat TYPE lvc_t_fcat , "ALV字段控 ...
- 百度地图 javascript相关Bug搜集
一 在手机里用百度地图js版做webapp bug集合 1 之前用2.0版本的时候发现只要地图添加了覆盖物,无论数量多少,当地图放大到很小的范围时候,会卡死 1.1 当时处理办法:将版本降低至1. ...
- 判断Webbrowser是否加载完成
var Form1: TForm1; glpDisp: IDispatch = nil; implementation {$R *.dfm} procedure TForm1.EmbeddedWB1D ...
- 超声波模块SRF05
//////////////////////////////////////////////////////////////////////////////// // // PIC16F877 ...
- 显示形状回归算法(ESR)代码介绍
源地址:http://www.thinkface.cn/thread-3704-1-6.html 人脸对齐包括两个部分,分别为训练部分和测试部分.所有的代码基于opencv2.0.(一)训练阶段Ste ...
- qt+boost::asio+tcp文件传输
客户端: void qt_boost::pbSendFileClicked(){ QString filename = ui.leFileName->text(); QByteArray ba ...
- c#调用语音功能
转自 http://www.cnblogs.com/Hans2Rose/p/WeatherSpeaker.html .Net里面自带了一个语音类库:System.Speech,调用系统的语音功能,就能 ...