Posts
All the articles I have published.
-
Swift 操作符
Published date:Swift 支持重载操作符的特性,让我们可以自定义一些简单的计算。 最经典的例子就是两个二维向量之间的计算了。 首先我们定义一个二维向量,并创建两个向量
-
Swift 进阶【七】字符串
Published date:- - - - 大部分编程语言使用整数值对字符串进行下标操作,比如 将会返回 中的第六个“字符” (这里的“字符”的概念由所操作的编程语言进行定义)。Swift 不允许这么做。为什么?答案可能现在你已经很耳熟了:因为整数的下标访问无法在常数时间内完成 (对于 协议来说这也是个直观要求),而且查找第 n 个 的操作也必须要对它之前的所有字节进行检查。
-
Swift ABI Stability Manifesto
Published date:* Authors: Michael Ilseman (compiled through conversations with many others)
-
Swift 进阶【六】编码和解码
Published date:将程序内部的数据结构序列化为一些可交换的数据格式,以及反过来将通用的数据格式反序列化为内部使用的数据结构,这在编程中是一项非常常见的任务。Swift 将这些操作称为编码(encoding)和解码(decoing)。Swift 4 的一个主要特性就是定义了一套标准的编码和解码数据的方法,所有的自定义类型都能选择使用这套方法。
-
优化 Swift 中 Notification.Name 的使用方式
Published date:在 中使用通知,在写通知名称的时候,并不能像 那样简单方便,一个字符串搞定。刚开始使用 通知时,感觉各种不爽,需要这样写:
-
8 Mistakes to Avoid while Using RxSwift
Published date:Judging by the number of talks, articles and discussions related to reactive programming in Swift, it looks like the community has been taken by the storm
-
Escaping Closures - Swift
Published date:- - - - 逃逸闭包(escaping closure),什么是逃逸闭包?苹果官方给的定义是:当一个闭包作为一个参数传递给函数,但是它是在函数返回之后调用的,这时候,这个闭包就称为逃逸闭包。当你声明一个将闭包作为参数的函数时,你可以在参数的类型之前用 来表明这个闭包是允许逃逸的。
-
layoutIfNeeded() 函数对 UIScrollView 的影响
Published date:在做 iOS 相关的约束动画时,我们一定会用到 函数,但是在大多数情况下使用并没有什么问题。当与 相关的控件结合使用的时候要注意了。
-
iOS 11权限更新
Published date:最近项目中遇到了一个崩溃,当点击图片选择保存的时候,并没有出现请求相册权限的对话框,而是直接就崩溃,并且没有任何错误信息。开始以为是权限没有添加,但是 是添加了的,搞不懂了。去翻了翻官方的文档,果然找到了解决方式。
-
Swift 进阶【五】函数
Published date:- - - - 要理解 Swift 中的函数和闭包,需要先明白三件事情,按重要程度进行大致排序如下: 要将函数赋值给一个变量,比如 funVar,我们只需要将函数名字作为值就可以了。注意在函数名后没有括号:
-
内存:栈和堆(C / Swift)
Published date:- - - - 什么是栈(Stack)?这是计算机内存中的一个特殊区域,它存储由每个函数创建的临时变量(包括 函数)。栈是一个“LIFO”(后进先出)的数据结构。它是被 CPU 管理和优化的。每次函数声明一个新变量时,它都被“压入”栈中。然后每次函数退出时,所有由该函数压入栈的变量都被释放(也就是说,它们被删除)。一旦释放栈变量,该区域的内存就可用于其他栈变量
-
Swift 进阶【四】结构体和类
Published date:* 结构体 (和枚举) 是值类型,而类是引用类型。在设计结构体时,我们可以要求编译器保证不可变性。而对于类来说,我们就得自己来确保这件事情。