ios CoreData删除第n个对象[重复]

Posted

技术标签:

【中文标题】ios CoreData删除第n个对象[重复]【英文标题】:ios CoreData delete nth object [duplicate] 【发布时间】:2014-02-28 13:52:15 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

你可以这样做:

  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);

【讨论】:

以上是关于ios CoreData删除第n个对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

全局标识符? - iCloud + Core Data + Ensembles - 删除对象时重复

导入 cvs 但基于特定列中的零删除行[重复]

CoreData 性能重复实体与属性

Swift - 删除CoreData行[重复]

iOS:RESTKit 与 CoreData 同步数据

更新 Coredata 属性而不重复