在 Swift 中使用工厂模式进行依赖注入
原文:Dependency injection using factories in Swift原作者 @johnsundell翻译:@OgreMergO 依赖注入是一项使得代码更加可测试的关键工具。我们不需要持有某些对象,或者创建这些对象的自有依赖,或者通过单例来获取他们,而是尽可能使那些对象 ...
Read more
模块化 Xcode 工程
使用 Xcode 构建模块化的工程就需要对工程结构以及其基础概念有很好的理解才行。我们平时不怎么关注工程结构本身,只有在工程逐渐变大,要添加更多依赖的时候才会注意的到。而即使到了这个时候,我们大多数的工程都会使用 CocoaPods 来设置那些依赖项,或者 Carthage, 后者虽然没有帮我们做 ...
Read more
Initializer in Swift
先占个坑,准备好好捋一下 Swift 和 Objective-C 的初始化相关的内容
Read more
处理 Swift 中非可选的可选值类型
原文:Handling non-optional optionals in Swift原作者 @johnsundell翻译:@OgreMergO 可选值(optionals)无可争议的是 swift 语言中最重要的特性之一,也是和其他语言,例如 Objective-C 的最大区别。通过强制处理那 ...
Read more
理解响应者和响应链
Apps 是通过响应者(responder)对象来接收和处理事件的。一个响应者对象是 UIResponder 类的一个实例,我们常见的 UIView,UIViewController 以及 UIApplication 都是 UIResponder 的子类。 UIKit 自动帮你管理着这些 respo ...
Read more
Capturing objects in Swift closures
原文:Capturing objects in Swift closures原作者 @johnsundell翻译:@OgreMergO 自从 Block 在 iOS4 被引入 Objective-C 的世界之后就成为了 Apple 各平台上最时髦的 API 的重要组成部分了。当 Swift 语言 ...
Read more
@autoclosure && @escape
我们知道在 swift 中,闭包(closure)是一等公民,因此可以被当作参数传递,在学习 swift 的过程中经常会看到某些关键字修饰该闭包,@autoclosure, @escape 就是其中比较常见的两种关键字。 @escape 和 @nonescape当一个闭包被当作参数传递给一个函数,但 ...
Read more
阅读 《Thread Programming Guide》
花了两天时间阅读了官方的 Thread Programming Guide,下面是该文档的脑图。
Read more
关于 iOS10 Notification 的那些事儿

概览

推送通知我们大家都不陌生,可以说几乎每个使用智能手机的人每天都会被不同的通知 打扰 到,正式因为合适的推送是吸引用户注意力的利器,其成为了各 App 吸引用户,将用户带回到 App 本身,提升用户的活跃度的一种必要的方式。当然要注意的是,推送本身是一件对用户影响特别大的事情,毕竟注意力被打断,因此合适的推送时机也是各个 App 开发者所要注意的,否则就会成为用户勿扰名单里的一员了。

之前刚开始学习 iOS 开发的时候还整理了下当时部署 iOS 远程推送的流程,详见:iOS 远端推送部署详解

接下来,我们大致回顾一下 iOS 平台关于推送都有哪些历程?

Read more
阅读《垃圾回收的算法与实现》

前一阵子 《垃圾回收的算法与实现》 这本书比较火,正好本人也对垃圾回收这个概念挺感兴趣的,就耐着性子一点一点啃,到今天只能说磕磕绊绊的看了大部分,实现篇只看了 Python 的部分,剩余的关于 Dalvik VM、Rubinius 以及 V8 的垃圾回收并未多看,主要还是自己对 Javascript,Ruby 等语言未有深入学习,我深以为只有结合这种语言本身的语言特性来看对应的垃圾回收实现才有意义。这篇文章主要是总结下学习到的一些主要的知识点。

Read more