核心数据便捷性获取方法

时间:2014-06-10 17:03:10

标签: ios objective-c core-data

我有使用获取请求访问的托管对象。 每次我想要对象时反复写入获取请求都是乏味的,所以我自己做了一个包含获取请求的便捷方法。

我的对象是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类?

此类方法是否有命名约定?我真的真的闻到每次使用这种方法时这段代码都很乏味。

1 个答案:

答案 0 :(得分:0)

你在这里开发的很好。您应该传入上下文,以便在添加其他上下文时不需要重构。如果需要,可以将它们转换为辅助类,但我倾向于将它们放入数据对象类本身。它清楚地说明了发生了什么。