在我的应用程序中,当用户保存一个“本周最喜欢的餐厅”对象时,我首先要获取我当前在Core Data
中保存的所有餐厅,并检查哪些餐厅早于一周。我已经拥有了每个Restaurant
对象,每个对象都拥有一个dateSaved
属性,该属性在保存对象时被设置。
删除所有早于一周的Restaurant
对象之后,然后将用户选择的餐厅保存到Core Data
中。
我该如何完成?
最佳答案
像这样获取记录
NSManagedObjectContext *moc = …;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Restaurant"];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
if (!results) {
DLog(@"Error fetching Restaurant objects: %@\n%@", [error localizedDescription], [error userInfo]);
abort();
}
然后将结果数组进行枚举,如下所示:
NSMutableArray *newerRestaurantsArray = [NSMutableArray alloc] init];
for (id object in results){
//or use a block if you want
NSManagedObject *restaurant = (NSManagedObject *)object;
if (object.dateSaved > date a week ago){
[newRestaurantsArray addObject: object];
}
}
newRestaurantsArray将具有您想要的。然后,您必须删除不需要的或全部删除,然后只保存想要的。查看此tutorial,它显示了如何保存并使它对您的实现有效。
您还可以使用
NSPredicate
仅获取所需的结果。查看this这样的答案。看看如何针对您的特定情况。
关于ios - iOS核心数据-删除早于一周的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36490367/