【问题标题】:NSManagedObjectContext CategoryNSManagedObjectContext 类别
【发布时间】:2013-02-18 18:02:46
【问题描述】:
我经常在多个类中设置获取请求以从核心数据中检索“allRecipes”或“lastModifiedDate”(以及其他一些结果)。
为此使用专门的类别NSManagedObjectContext+RecipeAppConveniences 会很方便。我真的不需要把这个通用化,我会根据具体情况决定是否经常获取相同的东西以使其在该类别中有用。
这是标准做法吗?我没有太多使用类别,只是想检查它不是反模式,并且我没有忽略一些会导致我痛苦的事情。
【问题讨论】:
标签:
ios
cocoa
core-data
nsmanagedobjectcontext
anti-patterns
【解决方案1】:
它不会是一种反模式,如果你认为这会使你的代码通用、可读,你可以选择它。
它被添加到objective-c只是为了这种灵活性。
【解决方案2】:
Apple 的方法是将方法添加到以 NSManagedObjectContext 作为参数的 NSManagedObject 子类中,例如
@interface Recipe : NSManagedObject
+ (NSArray *)allRecipesInContext:(NSManagedObjectContext *)moc;
@end
这种模式也更好地与用于插入新对象的新 API 保持一致,例如[Recipe.alloc initWithContext:moc].