点点滴滴:NSScanner的用法小结
NSScanner类是一个类簇的抽象父类,该类簇为一个从NSString对象扫描值的对象提供了程序接口。
NSScanner对象把NSString 对象的的字符解释和转化成 number和string 类型的值。在创建NSScanner对象的时候为它分配字符(string ),当你从NSScanner对象获取内容的时候,它会从头到尾遍历字符串(string)。由于类簇的属性, scanner对象并不是 NSScanner类的实例,而是它一个私有子类的实例。尽管scanner对象的类是私有的,但是它的接口是公开的(抽象父类已经声明)。 NSScanner 的原始方法是string和Configuring a Scanner方法下面列举的所有的方法。在 NSScanner 对象扫描字符串的时候,你可以通过设置属性charactersToBeSkipped忽略某些字符。在扫描字符串之前,那些位于忽略字符集中的字符将会被跳过。默认的忽略字符是空格和回车字符。可以通过[[scanner string] substringFromIndex:[scanner scanLocation]]获取未扫 ...
《CoreData》系列(二)
CoreData数据迁移以及版本升级
1 概述
为什么要有数据迁移?由于CoreData可视化的特殊性,那么当数据模型发生变化时,相应的sqlite数据库的表由于不知道model发生了变化,表结构必须相应的做出调整,否则会导致程序Crash,CoreData的解决方案是通过创建新的sqlite表,然后将旧的数据迁移到新表上得方案来处理。下面分别介绍三种数据迁移的方式,并详细说明三种迁移方式的应用场景和注意事项。
1.轻量级的数据迁移方式2.默认的迁移方式3.使用迁移管理器
1.1 轻量级的数据迁移方式
轻量级的数据迁移,也就是说,并不需要程序员做很多事情就可以完成数据的迁移,是由系统默认进行的数据迁移。那么如何进行轻量级的数据迁移呢,当model的表字段发生变化,且应用程序已经发布过版本时,此时千万不能单单修改原model来达到修改model的目的,如果这样做的话,程序会crash。正确的做法是,
1.新建一个model,并将model命名为model2,并将model2设置为当前model。2.修改NSPersistentStoreCoordinator加载缓存区的配置。具体如下 ...
《CoreData》系列(一)
《题外篇》
学习这个东西贵在日积月累,而且事情往往说起来容易,做起来难,我是一个资深dota玩家,从dota1到dota2,从大学到工作,从2008年到2015年。一直看2009的视频,经常吐槽09视频更新速度慢,但是细细想想,09能保持优酷更新401(最近查看)期视频。又有多少人能做的到。故而最近下了一个决定,每周五务必更新一篇技术博客,就看看自己能坚持多久。
《正文》1 概述本系列研究讨论的是iOS开发中的一种数据持久化技术-coredata。coredata、sqlite、fmdb的优缺点不是我要讨论的重点
这个系列的blog主要会研究讨论以下几点 1.快速搭建coredata环境,主要是连接数据库、创建数据库托管对象模型(NSManagerObject)、如何保存数据、查询数据? 2.coredata升级以及数据迁移的三种方式。 3.coredata与viewcontroller的结合,通过NSFetchedResultController使用coredata数据。 4.导入默认数据和前后台context。 5.关系
2 环境搭建
2.1 导入《 ...