我有使用获取请求访问的托管对象。 每次我想要对象时反复写入获取请求都是乏味的,所以我自己做了一个包含获取请求的便捷方法。
我的对象是WeekDay,为了检索所有的WeekDay对象,我在WeekDay类中创建了以下方法:
+ (NSArray *)allWeekDaysWithManagedObjectContext:(NSManagedObjectContext *)managedObjectContext
{
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"WeekDay"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"day" ascending:YES];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
return [managedObjectContext executeFetchRequest:fetchRequest error:nil];
}
这段代码有效,但我觉得有些不对劲。 尽管我只有一个managedObjectContext,但每次都将managedObjectContext作为参数移动。我读到Apple推荐View Controllers像这样传递managedObjectContext,但是这个建议是否仍适用于非ViewController类?
此类方法是否有命名约定?我真的真的闻到每次使用这种方法时这段代码都很乏味。
答案 0 :(得分:0)
你在这里开发的很好。您应该传入上下文,以便在添加其他上下文时不需要重构。如果需要,可以将它们转换为辅助类,但我倾向于将它们放入数据对象类本身。它清楚地说明了发生了什么。