Core data ios CoreData删除第n个对象

Core data ios CoreData删除第n个对象,core-data,ios7,Core Data,Ios7,我有一个简单的iOS7 CoreData应用程序,它只有一个实体。 实体只应存储最后100条记录。 当我添加第101条记录时,我想删除最旧的记录,以便始终保留100条(或更少)记录 如何删除“第n条记录”?您可以执行以下操作: NSError *error; //clear job: delete the old records before inserting new ones NSFetchRequest *del_fetchRequest = [[[NSFetchRequest al

我有一个简单的iOS7 CoreData应用程序,它只有一个实体。 实体只应存储最后100条记录。 当我添加第101条记录时,我想删除最旧的记录,以便始终保留100条(或更少)记录


如何删除“第n条记录”?

您可以执行以下操作:

  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);
}
NSError*错误;
//清除作业:在插入新记录之前删除旧记录
NSFetchRequest*del_fetchRequest=[[NSFetchRequest alloc]init]autorelease];
[del_fetchRequest setEntity:[NSEntityDescription entityForName:@“新闻”在托管对象上下文中:_上下文]];
[del_fetchRequest setPredicate:[NSPredicate predicateWithFormat:@“(记录ID<%@)”,此处为数字];
NSArray*del_newsMatchingTitle=[\u context executeFetchRequest:del_fetchRequest error:&error];
for(del_newsMatchingTitle中的NSManagedObject*managedObject){
[\u context deleteObject:managedObject];
//NSLog(@“%@对象已删除”,managedObject);
}
如果(![\u上下文保存:&错误]){
//NSLog(@“错误删除%@-错误:%@”,删除请求,错误);
}