weak 源码分析

iOS 内是通过引用计数来管理内存,引用计数的管理,很容易会出现“循环引用”问题。weak 修饰符,也是开发日常最常用的打破循环引用方式。被 weak 修饰符修饰的弱引用除了不会增加对象的引用计数外;在引用对象被释放后,这个弱引用会自动失效并置为 nil。本篇总结分析下 Objective-C 中 weak 都是怎么实现的。

分析源码基于:DeveloperErenLiu/RuntimeAnalyze/objc4-799.1

记一次 clang 编译错误的解决

记录 clang 编译错误的解决。

$ clang -rewrite-objc main.m

NSHashTable 和 NSMapTable

NSSet,NSDictionary,NSArray 是 Foundation 框架关于集合操作的常用类。在 NSSet 中,objects 是被强引用的(strongly referenced),同样 NSDictionary 中的 keys 和 values 也会被 NSDictionary 复制。如果我们想要存储一个 weak 类型的值或者使用一个没有实现 NSCopying 协议的 object 作为 NSDictionary 的 key,就可以分别使用和 NSSet,NSDictionary 地位相同的 NSHashTable,NSMapTable。

iOS

YYCache 源码梳理

本篇是对 YYCache 源码阅读过程中的梳理。YYCache 是一个线程安全的高性能 Key-Value 缓存框架。代码质量很高,值得拿来学习。

YYImage 源码梳理

图片相关的处理,在移动应用中属于比较重要的一个角色。本篇主要是对 YYImage 的源码实现做一个梳理,内容结构:

  • UIImage 相关的处理
  • YYImage 框架结构
  • YYImage
  • YYFrameImage
  • YYSpriteSheetImage
  • YYAnimatedImage
  • YYAnimatedImageView
  • YYImageCoder

WWDC17 505 - Photos APIs 新特性

视频链接:WWDC 2017 Session 505 - What’s New in Photos APIs

本节要介绍的是 Photos APIs 的一些新特性。简单的概括有下面这几点内容:

  • UIImagePickerController 的大幅优化
  • 授权模式的改进
  • 动图的支持
  • iCloud 照片图库的优化
  • 照片项目的扩展

后续内容,会对这几个点依次展开。

HTTP 和 HTTPS

OSI 七层模型OSI(Open System Interconnection),由底层到高层分别为: 物理层 数据链路层 网络层 传输层:TCP/UDP 会话层 表示层 应用层:HTTP TCP/UDPTCPTCP 中连接的建立需要三次握手,在通信结束时断开连接需要四次挥手。一个连接的建立与断开,正常过程至少需要来回送 7 个包才能完成。 建立 TCP 连接时的三次握手: 客户端...
iOS

Objc Tips

总结记录 Objective-C 使用过程中一些 Tips。

KVC 梳理

KVC 即键值编码。是一种可以不通过存取方法,直接通过属性名称字符串简介访问属性的机制。

KVO 梳理

本篇是对 KVO(Key-Value Observing) 的梳理。内容结构:KVO 基本使用、KVO 实现原理、自己实现 KVO。