0
我试图删除核心数据实体,无论我使用的删除规则如何,它都不起作用。它什么都不做。无论删除规则如何,都无法删除核心数据实体
我使用的是Firefox的Sqlite插件来浏览核心数据库,在删除代码运行后我可以看到所有的行。
我删除代码如下所示
+(void)deleteCustomerWithID:(int)customerid inManagedObjectContext:(NSManagedObjectContext *)context
{
Customer *customer = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Customer"];
request.predicate = [NSPredicate predicateWithFormat:@"id = %d", customerid];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"organization" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *customers = [context executeFetchRequest:request error:&error];
if (!customers || ([customers count] > 1)) {
// handle error
} else if (![customers count]) {
// customer not found
} else {
customer = [customers lastObject];
[context deleteObject:customer];
NSError *error;
if(![context save:&error]){
NSLog(@"Unresolved error series %@, %@", error, [error userInfo]);
}
}
}
任何想法,我究竟做错了什么?
有没有机会通过其他if/else分支之一? “客户”与定义的“拒绝”删除规则有任何关系吗? (我看到你说“不管什么删除规则”,但你检查了所有的关系?) –
没有拒绝任何实体的规则.. –
你是否100%确定如果带有'deleteObject:'方法调用的分支被执行并且没有保存错误?在手动删除对象时,删除规则不应该在这里扮演任何角色。 –