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