1. 程式人生 > >iOS -FDMB 資料儲存為blob後的增刪改查

iOS -FDMB 資料儲存為blob後的增刪改查

  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格式,才能去資料庫中查詢修改;