我正在尝试从获取请求中获取对象,并且正在检查该对象的属性。
根据属性的类型,我是否会显示通知。成功连接后,我将对象的属性类型从“已插入”设置为“已更新”。然后,当我刷新视图时,我从 coredata 中提取所有对象并检查它们的属性是否为“更新”类型。我遇到的问题是,我刚刚尝试更改为“更新”的提取请求中返回的对象仍然显示提取请求中的旧“插入”值,但在提交后不会立即显示。就像他们正在恢复一样。(我正在保存上下文)
更令人困惑的是,我得到了一个程序来查看存储在设备上的数据库文件中的实际表,它实际上显示了表中更新的正确值。但是获取请求仍然返回带有不正确数据的对象。再多的刷新也无法解决这个问题。
当 coredata 文件显示具有正确值的表时,获取请求如何为我提供具有旧/不正确数据的对象?
// code for the fetch request
// return an array of all assets for a specific customer
NSFetchRequest *fetchReq = [NSFetchRequest fetchRequestWithEntityName:@"Asset"];
fetchReq.predicate = [NSPredicate predicateWithFormat:@"customerID = %@" argumentArray:[NSArray arrayWithObject:customerID]];
NSArray *results = [[CoreDataManager sharedManager] executeFetchRequest:fetchReq];
return results;
//executeFetchRequest method
NSManagedObjectContext *context = [self managedObjectContextForCurrentThread];
NSArray *results = [context executeFetchRequest:fetchRequest error:&error];
return results;