iOS 本地存储, 无需再写SQL语句 <封装 FMDB&
2017-03-04 本文已影响355人
Dream1213
iOS,本地存储 SwpFMDB
iOS本地持久化储存方式
iOS本地持久化储存方式,常用几种方式:
- NSUserDefault,File,Keychain,DataBase
- NSUserDefault, File 适用的范围也都是一些小规模数据, NSUserDefault 其实还是以 .plist 文件进行储存数据的.
- Keychain 是苹果提供的带有可逆加密的存储机制, 用于储存一些私密信息, 比如密码, 证书等等, App卸载只要系统不重装,Keychain中的数据依旧能够得到保留.
- DataBase, IOS 常用的数据库
DataBase, IOS 常用的数据库:
- CoreData:苹果本身自带的数据 ( 重量级数据库,依赖性太强 ) 。
- SQLite:API是纯C语言的, 这样我们一直以来面向对象开发的朋友们, 突然找不到了对象, 有点那么的惊慌失措。
- FMDB:FMDB 底层依然封装 SQLite。
FMDB
- FMDB 是方式封装了 SQLite, 并且对于多线程并发, 线程安, 进行了处理, 和苹果本身自带的 CoreData 对比 轻量, 依懒性小. 使用起来很方便.
- FMDB 下载地地址
为什么封装 FMDB
- 之前做的项目需要大量持久化存储数据, 使用 FMDB 需要些大量的 SQL 语句····😂😂😂😂😂😂。
- FMDB 已经封装了 SQLite,但是开发者还是需要去写 SQL 语句,对于模型中属性比较多的话,拼接 SQL 语句将变得十分繁琐, 字典, 数组数据是没办法直接存入数据库, 需要特殊处理。
- 面向模型开发,操作模型,更加面向对象, 操作起来更加方便。
- 所以笔者做了面向模型的二次封装,不需要写任何 SQL 语句, 屏蔽掉反锁的操作,插入数据库是模型数据,取出也是模型数据,简单粗暴, 方便使用.
SwpFMDB 警告
- 请在自定义模型中加入这个属性 swpDBID.
@property (nonatomic, copy) NSString *swpDBID;
- 使用 SwpFMDB 缓存数据,是自定义模型,请在自定义模型中添加 swpDBID 这个属性,该属性必须存在,否则会崩溃。
- 如果继承 SwpBDModel 无需添加该属性。
SwpFMDB 注意事项
- 创建出都是同一个对象, 无毒无害放心使用. 😀😀😀😀😀😀😀
SwpFMDB *swpFMDB1 = [[SwpFMDB alloc] init];
SwpFMDB *swpFMDB2 = [SwpFMDB new];
SwpFMDB *swpFMDB3 = [swpFMDB1 copy];
SwpFMDB *swpFMDB4 = [swpFMDB1 mutableCopy];
SwpFMDB *swpFMDB5 = [SwpFMDB shareManager];
NSLog(@"swpFMDB1 = %p, swpFMDB2 = %p, swpFMDB3 = %p, swpFMDB4 = %p, swpFMDB5 = %p", swpFMDB1, swpFMDB2, swpFMDB3, swpFMDB4, swpFMDB5);
打印结果:
swpFMDB1 = 0x61000001e8f0, swpFMDB2 = 0x61000001e8f0, swpFMDB3 = 0x61000001e8f0, swpFMDB4 = 0x61000001e8f0, swpFMDB5 = 0x61000001e8f0
SwpFMDB 下载地址
- SwpFMDB
- 持续更新, 如果喜欢, 欢迎 Star。
SwpFMDB 详细文档:
参考文献
备注
- 持续更新, 如果喜欢, 欢迎 Star。
声明
- 著作权归 ©swp_song, 如需转载请标明出处。