1.若是后期须要增长数据库中的字段怎么实现,若是不使用CoreData呢?sql
回答:编写SQL语句来操做原来表中的字段数据库
1>增长表字段缓存
ALETER TABLE 表名 ADD COLUMN 字段名 字段类型;安全
2>删除表字段服务器
ALETER TABLE 表名 DROP COLUMN 字段名网络
3>修改表字段多线程
ALETER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名函数
2.SQLite数据存储是怎么用?.net
回答: 1>增长SQLite动态库:libsqlite3.dylib线程
2>导入主头文件:#import <sqlite3.h>
3>利用C语言函数建立/打开数据库,编写SQL语句
3.简单描述下客户端的缓存机制?
回答:1.缓存能够分为:内存数据缓存、数据库缓存、文件缓存
2.每次想获取数据的时候
1>先检测内存中有无缓存
2>再检测本地有无缓存(数据库/文件)
3>最终发送网络请求
4>将服务器返回的网络数据进行缓存(内存、数据库、文件)以便下次读取
4.你实现过多线程的Core Data么?NSPersistenStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些须要在线程中建立或者传递?你是用什么样的策略来实现的?
回答:1>CoreData是对SQLite数据库的封装
2>CoreData中的NSManageredObject在多线程中不安全
3>若是想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext
4>每一个NSManagedObjectContext对象实例均可以使用同一个NSPersistentStoreCoordinator实例,这是由于NSManagedObjectContext会在使用NSPersitentStoreCoordinator前上锁
附: FMDB:OC封装C语言的SQLite,编写SQL语句
CoreData:OC封装C语言的SQLite,不用编写任何SQL语句,自动根据对象类型和属性名生成对应的SQL语句
5.Core Data数据迁移
具体能够看这篇博客:http://blog.csdn.net/jasonblog/article/details/17842535