iOS开发 - Realm数据的踩坑之路

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:技术是无罪的,欢迎大家多多交流,转载的地方请注明作者出处!谢谢! https://blog.csdn.net/www_131374/article/details/83540352

找个时间,得把各种数据库的原理了解并记录一下。现在先把使用过程中遇到的问题列一下:

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>'.'

主键为空值,检查一下,最好顺便确保所有的字段都有值。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!