Realm中查询后取得的对象,就像是数据库文件中保存的对象的一个强引用。
所以修改查询后取得对象的属性,实际上是在修改数据库文件中的对象。
如果查询出来保存在内存中对象没有释放,就要从数据库文件中删除此对象,
则会出错,因为数据库文件中的对象如果此时被删除了的话,在内存中的对象就好
比成了野指针了。
所以如果对Realm对象实现copy协议,将查询出来的对象都作一次copy操作,
就和原来基于FMDB的第三方库一样操作了。但缺点就是Realm的懒加载机制失效了。
所以修改查询后取得对象的属性,实际上是在修改数据库文件中的对象。
如果查询出来保存在内存中对象没有释放,就要从数据库文件中删除此对象,
则会出错,因为数据库文件中的对象如果此时被删除了的话,在内存中的对象就好
比成了野指针了。
所以如果对Realm对象实现copy协议,将查询出来的对象都作一次copy操作,
就和原来基于FMDB的第三方库一样操作了。但缺点就是Realm的懒加载机制失效了。