iRSSの日記

はてなダイアリーiRSSの日記の続き

[iOSSDK]CoreDataで全件消去する方法

以下のように、objectを全件ループまわしてdeleteObjectするようです。なんか大げさだけど、SQLに依存するのもよくないので、しかたないのかな?

NSFetchRequest * allCars = [[NSFetchRequest alloc] init];
[allCars setEntity:[NSEntityDescription entityForName:@"Car" inManagedObjectContext:myContext]];
[allCars setIncludesPropertyValues:NO]; //only fetch the managedObjectID

NSError * error = nil;
NSArray * cars = [myContext executeFetchRequest:allCars error:&error];
[allCars release];
//error handling goes here
for (NSManagedObject * car in cars) {
[myContext deleteObject:car];
}
NSError *saveError = nil;
[myContext save:&saveError];
//more error handling here