iPhone Core Data存储的查询界面

时间:2010-05-16 12:41:20

标签: iphone sqlite core-data

另一个iPhone新手问题......

我有以下内容:

NSPersistentStoreCoordinator 的NSManagedObjectContext NSManagedObjectModel

是否可以直接在商店运行查询(因为它是一个sqlite数据库)?我正在尝试从tableview中删除所有记录,并且认为“DELETE FROM table”会很好而且快速,而不是循环记录并手动删除它们(我也在努力)。

感谢您的时间,

詹姆斯

1 个答案:

答案 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]);
  }
}