gpt4 book ai didi

iphone - NSManagedObject:isUpdated 和 isInserted

转载 作者:行者123 更新时间:2023-12-03 18:34:54 29 4
gpt4 key购买 nike

我使用 NSManagedObject 类的 isUpdated 实例方法来跟踪我的“对象”。

当我修改现有对象时,它可以工作。

如果我使用例如创建一个新对象:

[NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:managedObjectContext]

我不能使用 isUpdated,我必须使用 isInserted。

这可行,但我想检查的是,对象是否已使用数据进行了修改。

isInserted无论对象是否被改变都会返回FALSE,它只关心是否被插入...

我可以使用什么?我可以跟踪对象属性的初始状态,但我更喜欢 isUpdated 方法。

谢谢!!!

r。

最佳答案

我不确定我完全理解你的问题,但是,如果你想检查你是否使用未保存的 NSManagedObject,你可以通过为 NSManagedObject 编写一个小类别来实现:

@interface NSManagedObject(Utility)

/**
Returns YES if this managed object is new and has not yet been saved in the persistent store.
*/
- (BOOL)isNew;

@end

@implementation NSManagedObject(Utility)

- (BOOL)isNew {
NSDictionary *vals = [self committedValuesForKeys:nil];
return [vals count] == 0;
}

@end

如果您使用以下方法创建了新的托管对象:

[NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:managedObjectContext]

您可以使用-isNew方法检查是否已保存。

关于iphone - NSManagedObject:isUpdated 和 isInserted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275567/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com