一个精心整理的 iOS 开发代码示例集合,包含各种实用功能和开发技巧。
本项目收集了多个 iOS 开发中的实用示例代码,涵盖了多线程编程、网络请求、应用间跳转、崩溃防护、运行时编程等核心知识点。每个示例都包含详细的代码注释和说明,适合 iOS 开发者学习和参考。
- 克隆项目到本地
git clone https://github.com/itcharge/iOS-Codes.git
- 进入项目目录
cd iOS-Codes
- 选择感兴趣的示例项目,使用 Xcode 打开对应的
.xcodeproj
文件
- YSC-AppAJumpToAppB - iOS 应用间的跳转 Demo
- 应用 A 跳转到应用 B
- 应用 A 跳转到应用 B 的特定界面
- 从应用 B 跳转回应用 A
- 支持 URL Scheme 和 Universal Links
- YSC-Avoid-Crash - iOS 崩溃防护机制
- Unrecognized Selector Crash 防护
- KVO Crash 防护
- KVC Crash 防护
- Notification Crash 防护
- NSTimer Crash 防护
- Containers Crash 防护
- NSNull Crash 防护
- YSC-Blocks-Demo - Blocks 编程示例
- Blocks 基本语法和使用
- Blocks 变量捕获机制
__block
修饰符的使用- Blocks 循环引用问题及解决方案
- YSC-Category-Demo - Category 分类使用示例
- Category 基本用法
- Category 方法覆盖
- Category 与原始类的关系
- YSC-Class-DetailList-Demo - 类详情列表展示
- 列表数据展示
- 详情页面跳转
- 数据传递和展示
- YSC-DownloadDemo - iOS 文件下载演示
- NSData 下载小文件
- NSURLConnection 下载文件
- NSURLSession 下载文件
- 断点续传下载
- AFNetworking 下载文件
- 支持离线断点续传
- YSC-GCD-demo - GCD 多线程编程示例
- 同步/异步执行
- 串行/并发队列
- 主队列操作
- 线程间通信
- 栅栏方法 (dispatch_barrier_async)
- 延时执行 (dispatch_after)
- 一次性代码 (dispatch_once)
- 快速迭代 (dispatch_apply)
- 队列组 (dispatch_group)
- 信号量 (dispatch_semaphore)
- 线程安全控制
- YSC-NSOperation-demo - NSOperation 多线程编程示例
- NSInvocationOperation 使用
- NSBlockOperation 使用
- 自定义 NSOperation 子类
- NSOperationQueue 队列管理
- 操作依赖关系
- 操作优先级设置
- 线程间通信
- 线程安全控制
- YSC-pthread-NSThread-demo - pthread 和 NSThread 使用示例
- pthread 基本使用
- NSThread 基本使用
- 线程间通信
- 线程安全控制
- 图片下载示例
- YSC-RunLoopDemo - RunLoop 使用示例
- RunLoop 基本概念
- RunLoop 运行模式
- RunLoop 观察者
- RunLoop 定时器
- RunLoop 与线程的关系
- YSC-Runtime-MethodSwizzling - Runtime 和 Method Swizzling 示例
- Runtime 基本概念
- Method Swizzling 实现
- 动态方法解析
- 消息转发机制
- 类对象和元类对象
- 实例变量和属性
- 方法交换实践
- 开发语言: Objective-C
- 开发环境: Xcode
- 最低支持: iOS 8.0+
- 第三方库: AFNetworking (部分示例)
- 多线程编程: 建议按照 pthread → NSThread → GCD → NSOperation 的顺序学习
- 网络编程: 从 NSData → NSURLConnection → NSURLSession → AFNetworking 逐步深入
- Runtime 编程: 先理解基本概念,再实践 Method Swizzling
- 崩溃防护: 了解常见崩溃类型,学习防护机制
欢迎提交 Issue 和 Pull Request 来改进这个项目!
本项目采用 Apache-2.0 许可证 - 查看 LICENSE 文件了解详情。
如果这个项目对你有帮助,请给它一个 ⭐️!
注意: 请确保在真机上测试应用间跳转功能,模拟器可能无法完全模拟应用间跳转的场景。