核心数据 - countforfetch总是为空数据库返回1

时间:2014-04-07 11:13:08

标签: ios core-data xcode5.1

我已经看到了这个link,其中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 
}

1 个答案:

答案 0 :(得分:2)

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