段老师的视频教程,采用都是比较通用是 Demo,方便以后代码复用。也是从项目实践经验来教授相关知识如 FMDB,这几节课获益匪浅。
Demo 源码见 Github,并添加了相关注释。
28. 沙盒机制
介绍几种数据持久化的方案,选择合适项目的方案:
- 沙盒机制
- NSFileManager
- Plist、Archive数据归档 * SQLite3应用
- NSUserDefaults
沙盒目录结构 NSDocumentDirectory:
- Application Bundle/
- Documents/
- Library/Caches/
- Library/Perferences/
- tmp/
29. NSFileManager & Plist
存取文档的方法封装一个通用的类BLUtility.h/m,方便调用。以下代码是测试保存文本文档。
1 | // |
1 | // |
30. Archive 数据归档和 NSUserDefaults
转化为 NSData,二进制的数据,利于存储和传输。
遵循 NSCoding 协议,即可实现编码和解码的类,进一步对其归档和解档。也用到了封装的类BLUtility.h/m。本例中文档保存到 NSUserDefaults:
1 | // |
1 | // |
1 | // |
###延伸阅读:
31. SQLite3
通过 FMDB 封装,得以 OBjective-C 访问 SQLite,完成常用增删改查。从语法和数据体积实现轻量级存储方案。这个方案稍后用在习题“同学录”上实践一下。
1 | // |
1 | // |
延伸阅读:
32. 多线程和多媒体
简单介绍了常见多媒体的播放:
- UIImagePickerViewController
- UIActionSheet (👈名字谐音)
- AVAudioPlayer
- SystenSounID
- MPMoviePlayerViewController
1 |
|
33. 硬件访问、CALayer & Core Graphics
33.1. gravity and user acceleration
Useage: shaking device to feedback or 360° image
1 | // 4 - Start update divice motion and print them |
Search the definiton of each new word, really 😄😄😄.
Do you believe that, At least I don’t think so.
Output:
1 | --------------------------------------------------------------------------> |
33.2. CALayer
Modifying the Layer’s Appearance Properties.
Lots of properties really similar to Sketch.
33.3. Core Graphics
CGContextRef: An opaque type that represents a Quartz 2D drawing environment.
Path on CGContextRef vs Vector on Artboard in Sketch, by learn Sketch really make sense of those abstract concepts.
34. 自定义手势、Block & GCD
34.1. 手势
尽量设计使用常用的手势
设计一个小 Demo,实现:Shake Your iPhone To Send Feedback Email To Me😄
34.2. Block
比较简洁的函数,就在当前就可以调用。
34.3. GCD
Group queue:并行执行多任务比较牛。
35. APNS、Core Date、URL Scheme、单元测试、APP发布流
35.1. APNS

1 | // 1 - Register Remote Notification |
稍后添加到 Classmates
35.2. Core Data
核心概念:
1 | // 程序员和管理对象模式之间的桥梁,做数据库的增删改查等操作 |
稍后把 Classmate 整个 Core Data 的版本
35.3. URL Scheme
就是一个通过个地址访问系统软件或第三方软件,如地图和 Launch Center Pro。iOS 9之后估计有更多可能性。