我已经看到了这个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
}
答案 0 :(得分:2)
如果您希望获取请求忽略您在MOC中进行但尚未保存的任何更改,请使用setIncludesPendingChanges:
至NO
。默认情况下,将提取所有未保存的更改(因此您会在UI中看到未保存的更改)。