博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Swift 权威指南》简单纪要
阅读量:4297 次
发布时间:2019-05-27

本文共 995 字,大约阅读时间需要 3 分钟。

《Swift 权威指南》简单纪要

作者:李宁

Swift 的作者 Chris 在硕士毕业时提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础。

从 OS X 10.9 和 Xcode 5 开始,LLVM+GCC 已经被替换成了 LLVM+CLang 。

Swift 虽然本身是静态语言,是一门类型安全的语言,但其吸取了很多编程语言的优点,同时具备了很多动态语言的语法特性和交互方式。

在实际使用时,你能真切的感觉到其的灵活性,但是过于灵活真的好么?有时候,选择太多,反而会使整体代码显得杂乱。

在其他语言中,函数要返回多个值,则需要返回一个对象或结构体指针,而在 Swift 中可以通过返回元祖来实现多个值的返回。

可选变量的引入解决了大部分需要显示处理的异常,这部分工作由编译器完成。

很难说这个类型的使用简化了编程,你需要对所有可能为空的变量进行判断,然后决定是否使用。如果强制解包的时候,变量意外为 nil ,那同样为产生异常。

当 Swift 编译器在检测到数组中的的所有元素类型都相同时,就会将变量或常量类型设为 Swift 中的数组类型 Array ,否则,则设为 NSArray 类型。这种套路对于 Dictionary 和 NSDictionary 同样适用。

如此,便可以理解为何不能使用 as 将 [Any] 转为 Array 类型了。

var test:NSMutableDictionary = ["name":"bill","age":50];test.addEntries(from: ["sex":"man"])let test:NSMutableDictionary = ["name":"bill","age":50];test.addEntries(from: ["sex":"man"])

通过上面的对比,可以判断出 var 和 let 只是对其后的变量进行修饰,决定其是否可以被变更,对其实际变量类型所包含的值能否变更并无约束力。

在闭包中可以定义捕获列表,列出闭包中使用到的闭包外的所有变量,至于其是弱引用还是无主引用,则可以通过 unowned 来指定。

无主引用修饰的变量是不会自动置为 nil 的,也就意味着,使用无主引用修饰变量时,你需要确定该变量被使用时,其指向的实例是肯定存在的,即它总是在包含有无主引用变量的实例释放后释放。

转载地址:http://wvdws.baihongyu.com/

你可能感兴趣的文章
iPhone开发学习笔记002——Xib设计UITableViewCell然后动态加载
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Swift code into Object-C 出现 ***-swift have not found this file 的问题
查看>>
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
点击button实现Storyboard中TabBar Controller的tab切换
查看>>
Xcode 的正确打开方式——Debugging
查看>>
打包app出现的一个问题
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
Expanding User-Defined Runtime Attributes in Xcode with Objective-C
查看>>
iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
查看>>
提升UITableView性能-复杂页面的优化
查看>>
25 iOS App Performance Tips & Tricks
查看>>
那些好用的iOS开发工具
查看>>
iOS最佳实践
查看>>
使用CFStringTransform将汉字转换为拼音
查看>>
更轻量的 View Controllers
查看>>