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

[objc] view plaincopy

  1. #import "XYZCustomCell.h"
  2. #import "XYZCustomView.h"
  3. #import "XYZCustomViewController.h"

SWIFT

[objc] view plaincopy

  1. let myCell = XYZCustomCell()
  2. 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中的代码用了

[objc] view plaincopy

  1. #import “ProductModuleName-Swift.h”

以上归纳为一个表

  调用Swift代码 调用OC代码
Swift代码 无需声明 #import "ProductModuleName-Swift.h”
OC代码 依赖bridging header文件 #import "Header.h”

我写了一个小demo,里面有混合调用https://github.com/yang7/swiftAndOc

这里还有另外一个人写的swift调用OC第三方框架的demo

http://pan.baidu.com/s/1c0myIbA

时间: 2024-10-12 09:30:19

Swift和OC混合使用的相关文章

iOS开发--混编篇&swift与OC混合使用

Swift与OC混合使用 swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift [cpp] view plaincopy import Foundation class Act : NSObject { fun

关于swift与objective-c混合使用

在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明. 关于swift语方的学习可以看文档 The Swift Programming Language 本文假设你已经有所了解,下面基于当前您当前在做的objective-c来做swift扩展, 假设我们想要用swift在原来的工程中做一个新的view界面, 这个view会用到原有的objective-c中

Swift和OC混编

swift 语言出来后,可能新的项目直接使用swift来开发.但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块.不想再在swift 中再写一次,哪就使用混编. 这个在IOS8中是同意的. 先中简单的入手,先研究在同一个project文件夹下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名称为 act.swift 1.    import Foundation 2. 3.    class Act : NSObject 4.    { 5.      

详解swift和OC以及C语言的混编(不看后悔!)

前言: Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一些第三方使用OC写的,没有swift版本,怎么办?那就使用混编.这个在IOS8后是允许的. 先简单的入手,先研究在同一个工程目录下混合使用的情况.这里主要介绍swift类中调用OC方法和swift类中调用C函数以及OC类中调用swift的函数这三种类型的混编.另外,小编也是边研究边尝试才做出结果的,因此命名并非规范命名,大

在项目里交叉使用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 Object

Swift与OC混编

Swift一出来就比较受人欢迎,但是还是有很多的第三方库是不支持Swift的,个人也感觉Swift还有很长的路要走. 而且最近连Swift的创始人都离开苹果公司了......... 加入Swift用到了第三方的东西那怎么办呢,其实很简单,Xcode会自动帮你创建一个桥接文件,用来连接Swift和OC这两种语言,同样的在OC里面用Swift也是一样. 其实步骤都一样的, 第一种:在Swift中连接OC 步骤: 在新建一个OC类,到最后Xcode就会自动提示要不要创建Swift和OC的链接文件,点击

swiftDay01笔记 --swift和OC的不同点 && swift的基础语法

1.创建对象 带圆括号 * OC:      alloc initWithXXX 方法 * Swift:   (xxx:) //OC : //UIView *view = [UIView alloc]init]; //Swift : let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 2.方法调用   用点 * OC:     [UIColor redColor]; * Swift    UIColor.re

【Swfit】Swift与OC两种语法写单例的区别

Swift与OC两种语法写单例的区别 例如写一个NetworkTools的单例 (1)OC写单例 1 + (instancetype)sharedNetworkTools { 2 static id instance; 3 4 static dispatch_once_t onceToken; 5 6 dispatch_once(&onceToken, ^{ 7 instance = [[self alloc] init]; 8 //这里可以做一些初始化 9 }); 10 11 return i

在项目里交叉使用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 Objecti