2014-02-28 72 views
0

我有一個簡單的iOS7 CoreData應用程序與一個單一的實體。 實體只能存儲最後100條記錄。 當我添加第101條記錄 - 我想刪除最舊的記錄,以便我總是保持100(或更少)記錄ios CoreData刪除第n個對象

如何刪除「第n條記錄」?

回答

0

你可以這樣做:

NSError *error; 

//clear job: delete the old records before inserting new ones 
NSFetchRequest *del_fetchRequest = [[[NSFetchRequest alloc] init] autorelease]; 
[del_fetchRequest setEntity: [NSEntityDescription entityForName:@"News" inManagedObjectContext:_context]]; 


[del_fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(RecordID< %@)", number_here]]; 


NSArray *del_newsMatchingTitle = [_context executeFetchRequest:del_fetchRequest error:&error]; 

for (NSManagedObject *managedObject in del_newsMatchingTitle) { 
    [_context deleteObject:managedObject]; 
    //NSLog(@"%@ object deleted",managedObject); 
} 
if (![_context save:&error]) { 
    // NSLog(@"Error deleting %@ - error:%@",del_fetchRequest,error); 
}