0

我已经看到了这个链接,其中 countforfetch 始终为 1。但没有给出解决方案。

当我执行链接中给出的获取请求时,它会为我提供每次要保存的数据。因此,由于它已经存在,因此不会重新保存。所以数据库是空的。但令人惊讶的是,数据摆在桌面上。

这似乎是一种非常奇怪的行为。有人可以帮忙吗?

这是我的代码

  NSFetchRequest *fetchRequest12 = [[NSFetchRequest alloc] init];
    NSError *error;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"orderNumber = %@",orderList.orderNumber];
    [fetchRequest12 setPredicate:predicate];

    [fetchRequest12 setEntity:[NSEntityDescription entityForName:@"OrderList" inManagedObjectContext:appDelegate.managedObjectContext]];
      NSLog(@"The fetch was successful! %@", [appDelegate.managedObjectContext executeFetchRequest:fetchRequest12 error:&error]);

    if ([appDelegate.managedObjectContext countForFetchRequest:fetchRequest12 error:&error] ==0 ) { // Somethings to be done 
}
4

1 回答 1

3

如果您希望获取请求忽略您在 MOC 中所做但尚未保存的任何更改,请使用setIncludesPendingChanges:to 。NO默认情况下,会获取所有未保存的更改(因此您会在 UI 中看到未保存的更改)。

于 2014-04-07T11:17:36.813 回答