NSFetchRequest在下面的代码中获取的数据数量是倍数倍。示例我有3个数组作为第一次调用该方法的次数,下一次变为6次9等。但在数据库中,计数仍然为3.为什么会发生这种情况?核心数据 - NSFetchrequest获取两倍数据的实际数量
// the method is called in viewDidLoad
- (void) create {
[orderList removeAllObjects];
NSError * error;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"OrderList"
inManagedObjectContext:context];
for (int addOrd = 0; addOrd < orderMainArray.count; addOrd++) {
GetOrders *getOrd = (GetOrders*)[NSEntityDescription insertNewObjectForEntityForName:@"GetOrders" inManagedObjectContext:context];
OrderList *ordList = (OrderList*)[NSEntityDescription insertNewObjectForEntityForName:@"OrderList" inManagedObjectContext:context];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"orderId contains[cd] %@", [[orderMainArray objectAtIndex:addOrd] objectForKey:@"orderId"]];
[fetchRequest setPredicate:predicate];
[fetchRequest setEntity:entity];
NSLog(@"\n \n \n count for same data = %d", [context countForFetchRequest:fetchRequest error:&error]);
if ([context countForFetchRequest:fetchRequest error:&error] ==0) {
// all data is saved here
[getOrd addOrderListObject:ordList];
if ([context save:&error]) {
NSLog(@"The save was successful! %@", ordList.orderId);
}
else {
NSLog(@"The save wasn't successful: %@", [error userInfo]);
}
}
}
NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];
[fetchRequest1 setEntity:entity];
orderList = [[context executeFetchRequest:fetchRequest1 error:&error] mutableCopy]; // array count increases every time the method is called
}
每次调用'insertNewObjectForEntityForName:InManagedObjectContext:'你正在创建和添加新对象... – Wain
你想达到什么目的? –
@Wain - 谢谢你......你能回答同样的问题吗?我想把它标记为这个问题的答案。 –