iOS -FDMB 資料儲存為blob後的增刪改查
阿新 • • 發佈:2018-12-18
2018.10.31
FMDB是iOS平臺下的SQLite資料庫,以OC方式封裝後,更加方便快捷。
沒學資料庫之前,一直糾結用什麼方式能夠持久儲存且追加不覆蓋,直到看到了離線快取SQLite。
FMDB應用在當前的專案中,儲存好友資料,以往都是id主鍵加各種型別作為欄位形成多條記錄;
因為資料庫要儲存的是模型,因此欄位改成了以blob為格式,將傳入的模型增刪改查都以blob 格式操作;
流程:
1.封裝一個工具類,類中包含增刪改查、模型轉data、data轉模型等介面;
2.老流程,初始化initialize中開啟資料庫,建立表格;
3.以下增刪改查,都是blob的,與平常的略有點不同。我是根據需求排序
增(存):獲取網路字典陣列轉模型陣列,遍歷模型陣列,取出模型,模型轉字典,字典轉data,儲存到資料庫;
查(取):查詢某欄位,返回資料集;隨著資料集下移,取出blob裡的data, 經過data轉字典,字典轉模型,放在陣列中返回;
改(備註):以改備註為例,需要以前的暱稱和修改後的備註,存入的是blob資料沒有暱稱欄位如何修改?只能遍歷陣列去取出需要修改的模型,將原來的暱稱轉成data,修改後的備註也轉成data ,updata 時設定約束(但data==原來暱稱data)時修改為新的備註blob;這樣修改才能成功
總結:備註一直沒修改成功的原因
1.使用代理逆傳,接收方的代理方法執行比viewWillAppear快,所以viewWillAppear從資料庫中取覆蓋了備註
2.需要拿到原來的暱稱、修改的備註都改成data格式,才能去資料庫中查詢修改;