在我的应用中,当用户保存,比方说,“本周最喜欢的餐厅”对象时,我首先想要获取我目前在textarea
中保存的所有餐馆,并检查哪些餐馆的价格高于一个周。我已经让每个Core Data
个对象拥有一个Restaurant
属性,该属性在保存对象时会被设置。
删除所有超过一周的dateSaved
个对象后,我会将用户选择的餐馆保存到Restaurant
。
我如何完成这项工作?
答案 0 :(得分:2)
像这样获取记录
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 SO回答。看看你的具体情况如何。