另一个iPhone新手问题......
我有以下内容:
NSPersistentStoreCoordinator 的NSManagedObjectContext NSManagedObjectModel
是否可以直接在商店运行查询(因为它是一个sqlite数据库)?我正在尝试从tableview中删除所有记录,并且认为“DELETE FROM table”会很好而且快速,而不是循环记录并手动删除它们(我也在努力)。
感谢您的时间,
詹姆斯
答案 0 :(得分:1)
核心数据充当底层数据存储的包装器,因此开始规避核心数据并不是一个好主意。此外,核心数据会为您的数据库添加额外信息,因此直接访问数据库可能(或将来可能会)导致问题。
要通过核心数据删除所有记录,我有以下内容:
+ (void) deleteAll {
NSManagedObjectContext *managedObjectContext = [(myAppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:[[self class] description] inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
for (NSManagedObject *managedObject in items) {
[managedObjectContext deleteObject:managedObject];
NSLog(@"%@ object deleted",[[self class] description]);
}
}