SDWebImage底层原理
1. SDWebImage 的核心架构 SDWebImage 主要由以下几个关键组件组成: SDWebImageManager:图片加载的管理类,协调缓存、下载和解码。 SDImageCache:本地缓存系统,支持内存缓存 (NSCache) 和磁盘缓存 (NSData / UIImage)。 SDWebImageDownloader:图片下载器,负责异步从网络获取图片。 ...
1. SDWebImage 的核心架构 SDWebImage 主要由以下几个关键组件组成: SDWebImageManager:图片加载的管理类,协调缓存、下载和解码。 SDImageCache:本地缓存系统,支持内存缓存 (NSCache) 和磁盘缓存 (NSData / UIImage)。 SDWebImageDownloader:图片下载器,负责异步从网络获取图片。 ...
1. DispatchQueue.main.async {}(主队列,异步执行) DispatchQueue.main.async {} 代表将任务提交到 主线程(Main Thread) 的 主队列(Main Queue),并异步执行。由于主线程主要用于 UI 操作,所以所有的 UI 更新都必须在主线程完成。 示例:在主线程中执行任务 dispatch_async(dispatch_...
在 iOS 开发中,数据存储是应用程序开发的重要部分。苹果提供了多种本地存储方案,其中 NSUserDefaults(用户默认存储) 和 Core Data(核心数据框架) 是最常用的两种方式。 1. NSUserDefaults(用户默认存储) 1.1 什么是 NSUserDefaults? NSUserDefaults 是 iOS 提供的一个轻量级本地存储方式,通常用于存储 小...
在 iOS 开发中,retain cycle(循环引用)是一个常见的内存管理问题,尤其是在使用 ARC (Automatic Reference Counting) 进行内存管理的环境下。如果两个对象相互持有强引用 (strong),它们都不会被 ARC 释放,从而导致内存泄漏。 什么是循环引用? 在 Objective-C 中,循环引用通常发生在 block 和 delegate 之...
1. 什么是 ARC? 在 Objective-C 语言中,ARC(Automatic Reference Counting,自动引用计数) 是一种 编译时 的内存管理技术,它的主要作用是: 自动管理对象的引用计数(retainCount)。 在合适的时机自动释放对象,防止 内存泄漏 和 悬垂指针。 开发者无需手动调用 retain、release、autorelease。...
1. UIView 的 drawRect: 方法 1.1 什么是 drawRect:? drawRect: 是 UIView 提供的绘制方法,它用于在 UIView 视图的 context(图形上下文)中进行自定义绘制。 @interface MyView : UIView @end @implementation MyView - (void)drawRect:(CGRect)re...
在 iOS 开发中,UIViewController 是应用程序的核心组成部分之一,负责管理视图的创建、显示和销毁。理解 UIViewController 的生命周期方法对于正确管理资源、优化性能和避免内存泄漏至关重要。 UIViewController 的生命周期方法 1. initWithNibName:bundle: (初始化控制器) 调用时机: 当使用 initWith...
1. 什么是 MVC? MVC(Model-View-Controller)是一种将 数据、界面、逻辑 分离的架构模式。它将应用程序拆分为三个核心部分: Model(模型层):负责数据管理,包括数据存储、处理和业务逻辑。 View(视图层):负责 UI 展示,与用户交互,但不包含业务逻辑。 Controller(控制器层):负责连接 Model 和 View,处理用户交互,...