Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa -[NSManagedObject faultingState]返回0,即使对象是从错误中实现的_Cocoa_Core Data_Key Value Observing - Fatal编程技术网

Cocoa -[NSManagedObject faultingState]返回0,即使对象是从错误中实现的

Cocoa -[NSManagedObject faultingState]返回0,即使对象是从错误中实现的,cocoa,core-data,key-value-observing,Cocoa,Core Data,Key Value Observing,我使用managedObject的faultingState属性来确定对象在接收KVO通知时是否处于过渡状态 NFSDealer *dealer = user.dealers[0]; Asset *asset = finance.asset; 讨论的对象是金融,这是一个错误。当我访问资产属性时,会触发故障并初始化财务。在此过程中,我会收到KVO财务变更通知。但faultingState of finance在这些通知中返回0。这是正确的行为,还是我做错了什么 这是观察代码。我将FBKVOCon

我使用managedObject的faultingState属性来确定对象在接收KVO通知时是否处于过渡状态

NFSDealer *dealer = user.dealers[0];
Asset *asset = finance.asset;
讨论的对象是金融,这是一个错误。当我访问资产属性时,会触发故障并初始化财务。在此过程中,我会收到KVO财务变更通知。但faultingState of finance在这些通知中返回0。这是正确的行为,还是我做错了什么

这是观察代码。我将FBKVOController用于自定义操作

- (void)didChangeDepositAmount:(NSDictionary *)change object:(Finance *)observedObject{

if (observedObject.faultingState != 0) {

    return;

}

if ([change[NSKeyValueChangeOldKey] doubleValue] == [change[NSKeyValueChangeNewKey] doubleValue]) {

    return; // a hack around the faultingState :(

}

double newValue = [change[NSKeyValueChangeNewKey] doubleValue];

_depositDataSource.object = @(newValue);}
此外,如果我将对象转换为fault,我仍然会收到这些通知,但faultingState在这些通知期间返回2,这是有意义的。但是,当故障被实现时,faultingStatus在通知中返回0。这是密码

[finance.managedObjectContext refreshObject:finance mergeChanges:NO];
Asset *faultedAsset = finance.asset;
以下是faultingState的文档

@property(nonatomic, readonly) NSUInteger faultingState
如果对象已完全初始化为托管对象,且未转换为其他状态或从其他状态转换,则为0,否则为其他值。此属性允许您在接收键值更改通知时确定对象是否处于过渡阶段

有没有办法弄清楚通知是否是由于某个故障被具体化为一个初始化对象而触发的