swiftios开发,swift开发框架

iOS-OC和Swift相互混合开发(OC&Swift混编)

在ios的OC和Swift混合开发无非是2种,一种是在OC的项目中使用Swift语言开发,这里就需要创建Swift文件(或者引用Swift写的的第三方库),另一种是在Swift项目中使用OC语言开发,这里就需要创建OC文件,(或者引用OC写的的第三方库)

崆峒网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

首先我们在一个已有的OC的项目中,创建一个Swift文件

这里Xcode就会自动提示我们如:图1

Would you like to configure an Objective-C bridging header?

Adding this file to ocProjectUseSwift will create a mixed Swift and Objective-C target. Would you like Xcode to automatically configure a bridging header to enable classes to be accessed by both languages?

提示我们创建一个桥接的头文件,当我点击 “ Create  Bridging Header”,Xcode就给我们自动创建,自动创建的规则是:项目名+ "-Bridging-Header.h" 如图2

同时在项目中创建一个Swift文件

然后在在 targets - Build Settings - Packaging 中设置Defines Module 为YES

设置完后开始使用,怎么在oc中使用Swift的类呢?

重点: 在文件中引用 #import "ocProjectUseSwift-Swift.h"  记住不是我创建的SecondVC.swift,是“项目名-Swift.h"文件名 ,引入这个文件就引入了所有的Swift文件内的类、方法、属性

说明:这个文件是系统自动创建,自动添加所有我们创建的Swift的类的方法和属性

前提是要在方法和属性前面要加@objc 如图3:

用@objc声明好之后,在我们引用的是“项目名-Swift.h"文件名的 #import "ocProjectUseSwift-Swift.h" 内就看到有标记了如图4

这里分了3块,红色和绿色标记框内是我们自己标记的oc可用的属性和方法,蓝色框内是系统自己生成的oc可以初始化方法

具体使用就在oc文件中,如图5:

此事,在这个OC创建的项目中,我们创建的Swift文件怎么使用OC创建的类呢?

这里就用到我们创建的桥接头文件了,在图2中的桥接头文件,引入OC的头文件,如图6

就这样很简单,所以Swift文件的类都可以使用这个OC文件内的类了,使用起,和OC调用OC的类一样,如如图7和图8

Swift的项目中,第一次创建OC的文件,此时系统会自动帮我们创建桥接头文件,如图9

然后就有了和图2一样的桥接头文件,剩下的就和图6一样,在桥接头文件内引入头文件,即可使用OC的类,第三方库如果也是OC写的,在引入的时候也自动会加这个桥接头文件,当然一个项目只能加一次,加过的就不需要加了

iOS开发中OC和swift的对比

1.import的类

OC:某个只要要使用某个类就要将该类import。

swift:如果是用户自己创建类,其他类无需import可以直接使用。pod的一些三方类和系统的一些类,在使用的时候需要import

2.遵守协议实现协议中的代理方法

OC:

swift:

3.函数的返回值放在了后面

4.函数的参数类型放在了参数名的后面

5.函数的所有参数放在了一个"()"里,并且有了一个参数标签

看swift和OC的对比

枚举:

OC中:

swift中:

6.swift中的闭包和OC中的block

OC中的block:

swift中的闭包:

6.1解决swift中的闭包引起的循环引用(使用weak)

7.swift中的可选类型

8.swift中的基本运算

只有相同数据类型的数据才能进行运算(Int类型要想和Double类型数据运行,需要先将Int类型数据强转成Double类型数据)

9.swift中的guard

增强了可读性

9.1.swift中的if

没有了OC中的”非0即真"

10.swift中的switch

可以判断多个条件

可以判断多种类型

不用写break了

11.swift中的区间

12.swift中的元组

取数据更加方便

取出之后就知道元素的类型了

13.swift中的可选类型

swift是强类型语言。nil在swift中成了一种特殊类型,不能直接赋值给对象。只有可选类型才能赋值为nil

13.swift中的类型转化

as as? as!

14.swift中的结构体

14.swift中的属性

存储属性、计算属性、类属性

本篇文章会持续更新,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。????

iOS开发(Swift)——时间器(Timer)的使用

全局变量的定义:var timer : Timer!

使用:timer=Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.textfieldNotification), userInfo: nil, repeats: true)

textfieldNotification是timer的方法名

销毁:如果像OC一样直接timer.invalidate()会崩溃,要用

guard let timer1 = self.timer

else{ return }

timer1.invalidate()

收录:

文章标题:swiftios开发,swift开发框架
网页链接:https://www.cdcxhl.com/article42/dsiphhc.html

成都网站建设公司_创新互联,为您提供企业建站定制网站全网营销推广静态网站网站营销网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设