【发布时间】:2013-02-12 08:33:11
【问题描述】:
下面的代码不会删除实体。控制台上会显示“删除成功”消息,以便找到实体。我使用的所有其他操作都成功。
我正在使用 RestKit 0.20。
NSManagedObjectContext *context = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
NSError *error = nil;
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity: [NSEntityDescription entityForName:@"Auction" inManagedObjectContext:context]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"AuctionID = %d", auctionID];
[fetchRequest setPredicate:predicate];
NSArray *result = [context executeFetchRequest:fetchRequest error:&error];
if(result.count) {
Auction *block = result[0];
[context deleteObject:block];
BOOL status = [context save:&error];
if (status == NO) {
NSLog(@"delete falied for AuctionID:%d, error: %@", auctionID, error);
}
else {
[context processPendingChanges];
NSLog(@"delete was successful for AuctionID:%d", auctionID);
}
}
为什么这个删除操作可能不成功,解决办法是什么。
【问题讨论】:
-
删除实例后在哪里看到?
-
我在模拟器中的 *.sqlite 文件上使用了第 3 方工具“Base”。我可以使用该工具删除实体。
-
我实际上想知道问题的症状是什么,以及何时发生。您说您在删除数据时遇到问题,那么您什么时候才能看到您认为已删除的项目?
-
他们没有删除,我还能说什么?数据在应用程序启动之前就在那里,当应用程序删除时仍然在那里。我已经删除了 *sqlite 文件,用相同的程序添加了条目,它们不会删除。我想知道的是,RestKit 0.2 是否有什么东西会导致某种锁定?我在 6.1 模拟器中运行。
-
我找到了解决办法,看我的回答。
标签: ios core-data restkit restkit-0.20