成熟的夜间模式解决方案

关注仓库,及时获得更新:iOS-Source-Code-Analyze 从开始写 DKNightVersion 这个框架到现在已经将近一年了,目前整个框架的设计也趋于稳定。 其实夜间模式的实现就是相当于多主题加颜色管理。而最新版本的 DKNightVersion 已经很好的 »

懒惰的 initialize 方法

关注仓库,及时获得更新:iOS-Source-Code-Analyze 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是 x86_64 架构下运行的,对于在 arm64 中运行的代码会特别说明。 写 »

从源代码看 ObjC 中消息的发送

Blog: Draveness 关注仓库,及时获得更新:iOS-Source-Code-Analyze 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是 x86_64 架构下运行的,对于在 arm64 中运行的 »

深入解析 ObjC 中方法的结构

Blog: Draveness 关注仓库,及时获得更新:iOS-Source-Code-Analyze Follow: Draveness · Github 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Ma »

从 NSObject 的初始化了解 isa

Blog: Draveness 关注仓库,及时获得更新:iOS-Source-Code-Analyze 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是 x86_64 架构下运行的,对于在 arm64 中运行的 »

AFNetworking 概述(一)

Blog: Draveness 关注仓库,及时获得更新:iOS-Source-Code-Analyze 在这一系列的文章中,我会对 AFNetworking 的源代码进行分析,深入了解一下它是如何构建的,如何在日常中完成发送 HTTP 请求、构建网络层这一任务。 AFNetwo »

使用代码为 Xcode 工程添加文件

这几天在持续更新 DKNightVersion 这个仓库, 我对这个框架投入了很多的时间和精力. 我还是希望把这个框架的方方面面都做好的, 为框架的使用者提供最好的用户体验, 将开发者的使用成本和使用难度降到最低, 提升开发者的使用体验. 但是在我维护这个框架的过程中还是感觉到 »

StackOverflow 黑魔法系列 <1>

最近看到了很多关于 iOS 开发的黑魔法, 发现最终的链接都是来自与 stackoverflow, 我感觉需要在 stackoverflow 上这个社区逛一逛, 找一些比较屌神奇的黑魔法来分享一下, 也能够多两篇水文提高一下自己的水平, 当然我会在每一条"咒语"的后面加上原文的链 »

iOS 源代码分析----Masonry

Masonry 是 Objective-C 中用于自动布局的第三方框架, 我们一般使用它来代替冗长, 繁琐的 AutoLayout 代码. Masonry 的使用还是很简洁的: [button mas_makeConstraints:^(MASConstraintMaker * »

Swift 类构造器的使用

这几天在使用 Swift 重写原来的一个运动社交应用 SportJoin. 为什么要重写呢? 首先因为实在找不到设计师给我作图; 其次, 原来写的代码太烂了我也闲不下来, 想找一些项目做, 所以只好将原来的代码重写了. 原来的代码大约是一年半以前写的, 我现在真的不想吐槽当时写 »

iOS 为 UIKit 属性增加钩子方法

最近在做一个用于实现夜间模式的开源框架, 需监听 UIKit 中的属性, 而这个监听的通知者就是 UIKit 实例本身, 当我最开始想要做的时候, 我感觉这个东西实在太简单了, 不过之后... KVO 我想到的第一个解决方案是使用 KVO 来解决. KVO 是一个很好的方式来为已 »

iOS 源代码分析----SDWebImage

世人都说阅读源代码对于功力的提升是十分显著的, 但是很多的著名开源框架源代码动辄上万行, 复杂度实在太高, 在暑假的时候我曾经试图读一些开源框架的源代码, 比如说 AFNetworking, SDWebImage, ReactiveCocoa 但是由于当时比较浮躁, 实在没法静下 »

iOS Combine View and TableView <Bug01>

我在开发我的第一个项目SportJoin的过程中遇到过这样一个问题, 需要写出一个同时有UIView和UITablView的界面, 这个为什么很困难呢. 需要写出易于维护的结构. 需要在tableView滚动的时候滚动. 需要在headerView到达顶部的时候segm »

iOS 管理图形上下文 context

在 iOS 的视图中, 有三个非常相似的属性, alpha, opaque hidden. 这三个属性实际上没有什么太多的关系. hidden 属性 我们首先来解释一下 hidden 属性, 如果将一个控件设置的view属性设置为YES, 那么这个view根本不会被绘制, 它通常 »