【发布时间】:2014-02-28 13:52:15
【问题描述】:
我有一个带有单个实体的简单 iOS7 CoreData 应用程序。 该实体应该只存储最后 100 条记录。 当我添加第 101 条记录时 - 我想删除最旧的记录,以便始终保留 100 条(或更少)记录
如何删除“第n条记录”?
【问题讨论】:
我有一个带有单个实体的简单 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);
}
【讨论】: