关于面试中的一二 ------------数据存储 持续更新

1.    如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢?

编写SQL语句来操作原来表中的字段

1>  增加表字段

ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;

2>  删除表字段

ALTER TABLE 表名 DROP COLUMN 字段名;

3>  修改表字段

ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名;

 

2.    SQLite数据存储是怎么用?

1>  添加SQLite动态库:

2>  导入主头文件:#import <sqlite3.h>

3>  利用C语言函数创建\打开数据库,编写SQL语句

 

3.    简单描述下客户端的缓存机制?

1.    缓存可以分为:内存数据缓存、数据库缓存、文件缓存

2.    每次想获取数据的时候

1>  先检测内存中有无缓存

2>  再检测本地有无缓存(数据库\文件)

3>  最终发送网络请求

4>  将服务器返回的网络数据进行缓存(内存、数据库、文件),以便下次读取

 

4.    你实现过多线程的Core Data么?NSPersistentStoreCoordinatorNSManagedObjectContextNSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?

1>  CoreData是对SQLite数据库的封装

2>  CoreData中的NSManagedObjectContext在多线程中不安全

3>  如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext

4>  每个NSManagedObjectContext对象实例都可以使用同一个NSPersistentStoreCoordinator实例,这是因为NSManagedObjectContext会在便用NSPersistentStoreCoordinator前上锁

 

5.    core  data数据迁移

http://blog.csdn.net/jasonblog/article/details/17842535

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章