我试图在嵌套对象中进行一些简单的更新,并且我注意到它不会一直发生。
假设假设涉及以下类:
@interface Dog : RLMObject
@property NSString *name;
@property NSData *picture;
@property NSInteger age;
@end
@interface Person : RLMObject
@property NSString *name;
@property RLMArray<Dog *><Dog> *dogs;
@end
如果服务器通过了一个带有更新狗名的Person对象,目前我只会这样做(在Psuedocode中)
for (Dog *dog in person.dogs)
{
dog.name = updatedDogName;
}
[defaultRealm beginWriteTransaction];
[defaultRealm addOrUpdateObject:person];
[defaultRealm commitWriteTransaction];
假设:
1)人和各自的Dog对象具有唯一的主键
2)Person和相应的Dog对象已经存在于DB中,我只是通过Person对象更新Dog对象。
我在这里做错了吗?我注意到更新只发生了大约一半的时间。
答案 0 :(得分:0)
问题源于调用writeCopyToURL,而正在使用附加了Realm实例的对象(例如person.realm != nil
)。更自由地使用自动释放池试图减少这种情况发生的可能性。