删除Core Data中的一行数据的最佳方法是什么?我可以使用indexPath在线找到很多答案:
NSManagedObjectContext *context=[self managedObjectContext];
[context deleteObject:[self.recordarray objectAtIndex:indexPath.row]];
NSError *error=nil;
if (![context save:&error]) {
NSLog(@"Cant save %@ %@",error,[error localizedDescription]);
}
[self.recordarray removeObjectAtIndex:indexPath.row];
我没有表视图,我正在为自定义视图保存数据。我对Core数据很新,基本上我想在SQL中做类似的事情
Delete Row with FirstColumn(Primary Key) is Equal to "ABC"
有人可以帮助我并提供链接。
答案 0 :(得分:2)
与Sqlite的“从tableName WHERE条件中删除”一样,您没有从CoreData中删除MULTIPLE
个对象的单一步骤。
在 CoreData 中,首先您必须使用NSFetchRequest
和NSPredicate
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"EntityName"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"propertyName == %@", value];
[request setPredicate:predicate];
NSError *error = nil;
NSManagedObjectContext *managedObjectContext;//Your ManagedObjectContext;
NSArray *result = [managedObjectContext executeFetchRequest:request error:&error];
然后,您应该迭代遍历每个NSManagedObject
并从deleteObject:
致电NSManagedObjectContext
。
if (!error && result.count > 0) {
for(NSManagedObject *managedObject in result){
[managedObjectContext deleteObject:managedObject];
}
//Save context to write to store
[managedObjectContext save:nil];
}
答案 1 :(得分:0)