搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > iOS程序员 > Swift 实践:从 OC 到 Swift

Swift 实践:从 OC 到 Swift

iOS程序员 2020-07-01

本文是笔者在第一次完整用 Swift 开发项目过程中的一些实践笔记。如果你是跟我一样,之前完全没有使用 Swift 开发项目的经验,那么本文应该会有一些帮助,内容方面会涉及一些基础概念,还有一些实例代码。

 类型对比 


Swift OC
String
NSString / NSMutableString
Array NSArray / NSMutableArray
Dictionary
NSDictionary / NSMutableDictionary
Set NSSet / NSMutableSet


Swift 里没有可变or不可变的集合类型这一说的,你可以使用 var 来定义变量或者 let 定义常量来决定一个集合类型是不是可变。




 UIButton 添加响应事件 


在方法前加上 @objc 修饰

backBtn.addTarget(self, action: #selector(backAction), for: .touchUpInside)
@objc func backAction () {  self.navigationController?.popViewController(animated: true)}


 全局导入三方库头文件 

// 使用 @_exported 修饰@_exported import SnapKit


 全局常量,类似宏 

// 创建一个 Global.swiftlet PixelOne: CGFloat = 0.5


 Swift 中的值类型、引用类型


值类型:一种当它被指定到常量或者变量,或者被传递给函数时会被拷贝的类型。

  • 结构体和枚举是值类型

  • Swift 中所有的基本类型:整数、浮点数、布尔、字符串、数组、字典都是值类型,并且以结构体的形式在后台实现


引用类型:当它被指定到常量或变量或被传递给函数时,不会被拷贝,而是对现存实例的引用。

  • 类是引用类型

  • 函数和闭包是引用类型



 类 vs 结构体 


类是引用类型,结构体是值类型。当符合以下一个或几个条件的时候,应当考虑使用结构体。


  • 结构体的主要目的是封装一些相关的简单数据值

  • 需要封装的数据想要拷贝而不是引用

  • 任何存储在结构体中的属性是值类型,也将被拷贝而非引用

  • 结构体不需要从一个已存在类型继承属性或者行为


系统会给结构体生成一个默认初始化方法,来保证所有存储属性都有初始值。类需要开发者自己写初始化方法。


Swift 中,创建类的实例对象,要向对空间申请内存。



 混编 Swift 和 OC 


Swift 调用 OC:创建桥文件,把 OC 要暴露给 Swift 的内容在桥文件中导入。桥文件格式为  {targetName}-Bridging-Header.h 


OC 调用 Swift:Xcode 已经默认生成一个用于 OC 调用 Swift 的头文件,文件名格式是  {targetName}-Swift.h  


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Swift 实践:从 OC 到 Swift》的版权归原作者「iOS程序员」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注iOS程序员微信公众号

iOS程序员微信公众号:ioscxy

iOS程序员

手机扫描上方二维码即可关注iOS程序员微信公众号

iOS程序员最新文章

精品公众号随机推荐