1. 程式人生 > >Realm資料的踩坑之路

Realm資料的踩坑之路

找個時間,得把各種資料庫的原理了解並記錄一下。現在先把使用過程中遇到的問題列一下:

1、切記realm資料庫支援的型別,使用了陣列和字典的要注意了,最好宣告一個NSData型別的對應屬性,然後使用ignoredProperties忽略陣列和字典型別的屬性。。在儲存時候轉化一波!

BOOL, bool, int, NSInteger, long, float, double, CGFloat, NSString, NSDate 和 NSData

2、使用預設資料庫並且修改預設資料庫的路徑時,要先檢查修改的資料夾是否存在,否則就會炸掉。

3、新增了一個欄位,刪除了一個欄位,炸掉,提示我,欄位變更了,要資料遷移,好吧,整個資料庫刪掉了,再來。

4、刪除報錯,Can only delete an object from the Realm it belongs to

這個可能是因為,你模型並不是由資料庫查詢得到的,所以資料庫不能直接刪除,建議先用id查詢這個物件,然後刪除查詢到的物件。

5、使用報錯,Object has been deleted or invalidated

這個可能是因為,你持有的物件,已經被資料庫刪除掉了,debug一下列印這個物件,會顯示[invalidated object],相當於空物件,再獲取吧。

6、直接報錯,this class is not key value coding-compliant for the key id.

這個意思是你沒有這個id欄位,可是我本來就沒有這個欄位啊,不是很理解,我的處理是重寫了valueForUndefinedKey方法,然後將模型的itemID扔出來了。

7、下滑線加屬性名可能會獲取到空物件,改用self.。

8、報錯,RLMException', reason: 'Target table row index out of range

9、報錯,'Attempting to create an object of type 'BrTaskConfigModel' with an existing primary key value '<null>'.'

主鍵為空值,檢查一下,最好順便確保所有的欄位都有值。