-
ARC 工作原理与循环引用
内存管理是所有应用程序的基石,而在 Swift 中,理解 ARC(自动引用计数)不仅仅是为了通过面试,更是为了防止 App 在用户不知情的情况下“吃掉”所有内存并最终崩溃。 …
-
Result、throws 与可恢复错误模式
在 Swift 的演进历程中,我们经历了从 Objective-C 时代的
NSError **指针噩梦,到 Swift 2.0 引入throws,再到 Swift 5 引入Result类型,以及现在 Swift 6 的 Typed Throws。 …
-
初始化与析构:指定|便捷|失败初始化与 deinit 语义全解析
在 Swift 的世界里,创建一个对象不像在某些动态语言里那样随意。Swift 是一种强安全语言,它要求一个实例在被使用之前,其所有的属性都必须被正确地“填满”。这种执着,催生了一套看似复杂、实则严密的初始化规则。 …
-
属性与属性包装器:存储、计算、延迟与 Property Wrapper 实战
在我们的 Swift 开发之旅中,“属性”(Property)是我们打交道的第一个“老朋友”。它们构成了
Struct和Class的“状态”。最开始,我以为属性就是用来“存东西”的。但很快我发现,它们有的能“算东西”(计算属性),有的“很懒”(延迟属性),有的甚至还带着“观察哨”(willSet/didSet)。 …
-
函数与闭包进阶:逃逸、@autoclosoure与捕获列表的语意
在 Swift 的世界里,函数和闭包是一等公民。我们可以像传递一个
Int或String一样,把它们作为参数传递,或者作为返回值返回。 这种灵活性是 Swift 表现力的核心。但它也引入了三个非常重要、且经常被混淆的概念:@escaping(逃逸)、[weak self](捕获列表) 和@autoclosure(自动闭包)。 …
-
可选值进阶:安全解包策略与静态诊断思维
如果说 Swift 语言有什么特性是“爱恨交织”的,那一定是可选值 (Optional)。对于刚接触 Swift 的开发者来说,满屏的
?和!可能会让人困惑,甚至觉得它“很麻烦”。但随着我写了更多 Swift 代码,我逐渐意识到,可选值是 Swift 语言的精华所在,是它安全性的基石。 …
-
值类型与引用类型:Struct、Class、Enum 的边界与取舍
大家好,在刚开始学习 Swift 时,我像很多开发者一样,知道一个“简单”的区别:Struct 是值类型(Value Type),Class 是引用类型(Reference Type)。而 Enum 也是值类型。 …
-
Coordinator Design Pattern in Swift
协调器模式可以控制我们 APP 的流程,避免直接将页面导航跳转逻辑放入控制器中。它还可以帮我将视图控制器隔离,这在我们项目分层设计中非常有用。 …
-
iOS Crash 防护
如何设计一套 APP Crash 防护系统。这套系统采用 AOP(面向切面编程)的设计思想,利用 Objective-C语言的运行时机制,在不侵入原有项目代码的基础之上,通过在 APP 运行时阶段对崩溃因素的的拦截和处理,使得 APP 能够持续稳定正常的运行。 …
-
认识 AutoLayout
iOS 关于 AutoLayout 的初级探索 …
Swift
查看标签页-
ARC 工作原理与循环引用
内存管理是所有应用程序的基石,而在 Swift 中,理解 ARC(自动引用计数)不仅仅是为了通过面试,更是为了防止 App 在用户不知情的情况下“吃掉”所有内存并最终崩溃。 …
-
Result、throws 与可恢复错误模式
在 Swift 的演进历程中,我们经历了从 Objective-C 时代的
NSError **指针噩梦,到 Swift 2.0 引入throws,再到 Swift 5 引入Result类型,以及现在 Swift 6 的 Typed Throws。 …
-
初始化与析构:指定|便捷|失败初始化与 deinit 语义全解析
在 Swift 的世界里,创建一个对象不像在某些动态语言里那样随意。Swift 是一种强安全语言,它要求一个实例在被使用之前,其所有的属性都必须被正确地“填满”。这种执着,催生了一套看似复杂、实则严密的初始化规则。 …
-
属性与属性包装器:存储、计算、延迟与 Property Wrapper 实战
在我们的 Swift 开发之旅中,“属性”(Property)是我们打交道的第一个“老朋友”。它们构成了
Struct和Class的“状态”。最开始,我以为属性就是用来“存东西”的。但很快我发现,它们有的能“算东西”(计算属性),有的“很懒”(延迟属性),有的甚至还带着“观察哨”(willSet/didSet)。 …
-
函数与闭包进阶:逃逸、@autoclosoure与捕获列表的语意
在 Swift 的世界里,函数和闭包是一等公民。我们可以像传递一个
Int或String一样,把它们作为参数传递,或者作为返回值返回。 这种灵活性是 Swift 表现力的核心。但它也引入了三个非常重要、且经常被混淆的概念:@escaping(逃逸)、[weak self](捕获列表) 和@autoclosure(自动闭包)。 …
-
可选值进阶:安全解包策略与静态诊断思维
如果说 Swift 语言有什么特性是“爱恨交织”的,那一定是可选值 (Optional)。对于刚接触 Swift 的开发者来说,满屏的
?和!可能会让人困惑,甚至觉得它“很麻烦”。但随着我写了更多 Swift 代码,我逐渐意识到,可选值是 Swift 语言的精华所在,是它安全性的基石。 …
-
值类型与引用类型:Struct、Class、Enum 的边界与取舍
大家好,在刚开始学习 Swift 时,我像很多开发者一样,知道一个“简单”的区别:Struct 是值类型(Value Type),Class 是引用类型(Reference Type)。而 Enum 也是值类型。 …
-
Coordinator Design Pattern in Swift
协调器模式可以控制我们 APP 的流程,避免直接将页面导航跳转逻辑放入控制器中。它还可以帮我将视图控制器隔离,这在我们项目分层设计中非常有用。 …
入门 · 小试牛刀
查看标签页-
iOS Crash 防护
如何设计一套 APP Crash 防护系统。这套系统采用 AOP(面向切面编程)的设计思想,利用 Objective-C语言的运行时机制,在不侵入原有项目代码的基础之上,通过在 APP 运行时阶段对崩溃因素的的拦截和处理,使得 APP 能够持续稳定正常的运行。 …
-
认识 AutoLayout
iOS 关于 AutoLayout 的初级探索 …
-
iOS Runtime 之 Category
Category(分类) 是 Objective-C 2.0 添加的语言特性,主要作用是为已经存在的类添加方法。Category 可以做到在既不子类化,也不侵入一个类的源码的情况下,为原有的类添加新的方法,从而实现扩展一个类或者分离一个类的目的。在日常开发中我们常常使用 Category 为已有的类扩展功能。 …
-
iOS Runtime Method Swizzling
从这一篇文章开始,我们来了解一下 Runtime 在实际开发过程中,具体的应用场景。 …
-
iOS Runtime基础知识
我们都知道,将源代码转换为可执行的程序,通常要经过三个步骤:编译、链接、运行。不同的编译语言,在这三个步骤中所进行的操作又有些不同。 …
-
iOS 多线程总结
NSOperation、NSOperationQueue 简介、操作和操作队列、使用步骤和基本使用方法、控制串行/并发执行、NSOperation 操作依赖和优先级、线程间的通信、线程同步和线程安全,以及 NSOperation、NSOperationQueue 常用属性和方法归纳。 …
-
ReactiveCocoa初识
几个月前看了一点RAC的介绍,感觉很强大但也很难入门,这种编程思想值得去学些下,整理下RAC的资源。 …
jekyll
查看标签页-
Welcome to My Jekyll!
期待已久的小站,在参考大量资料的基础上终于搭建起来了,还有很多带完善的地方,后续在优化,希望能够坚持写下去; …
效率
查看标签页-
Mac 提升效率
Xcode 快捷键
编译、运行,Instruments,单元测试,暂停这些基本操作就不解释了。我把一些自认为比较有用的命令加粗表示: …
源码分析
查看标签页-
SDWebImage研读
SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能: …
能工巧匠
查看标签页-
iOS中保证线程安全的几种方式 !
一、前言
…
-
iOS Runtime小集
大家好,今天带来一些我对runtime的认识,希望能帮到大家。 …
-
认识GCD
前言
首先提出一些问题: …
-
iOS知识小集
一直想做这样一个小册子,来记录自己平时开发、阅读博客、看书、代码分析和与人交流中遇到的各种问题。之前有过这样的尝试,但都是无疾而终。不过,每天接触的东西多,有些东西不记下来,忘得也是很快,第二次遇到同样的问题时,还得再查一遍。好记性不如烂笔头,所以又决定重拾此事,时不时回头看看,温故而知新。 …