NSManagedObjectContext 类别

Posted

技术标签:

【中文标题】NSManagedObjectContext 类别【英文标题】:NSManagedObjectContext Category 【发布时间】:2013-02-18 18:02:46 【问题描述】:

我经常在多个类中设置获取请求以从核心数据中检索“allRecipes”或“lastModifiedDate”(以及其他一些结果)。

为此使用专门的类别NSManagedObjectContext+RecipeAppConveniences 会很方便。我真的不需要把这个通用化,我会根据具体情况决定是否经常获取相同的东西以使其在该类别中有用。

这是标准做法吗?我没有太多使用类别,只是想检查它不是反模式,并且我没有忽略一些会导致我痛苦的事情。

【问题讨论】:

【参考方案1】:

它不会是一种反模式,如果你认为这会使你的代码通用、可读,你可以选择它。

它被添加到objective-c只是为了这种灵活性。

【讨论】:

【参考方案2】:

Apple 的方法是将方法添加到以 NSManagedObjectContext 作为参数的 NSManagedObject 子类中,例如

@interface Recipe : NSManagedObject

+ (NSArray *)allRecipesInContext:(NSManagedObjectContext *)moc;

@end

这种模式也更好地与用于插入新对象的新 API 保持一致,例如[Recipe.alloc initWithContext:moc].

【讨论】:

以上是关于NSManagedObjectContext 类别的主要内容,如果未能解决你的问题,请参考以下文章

父/子 NSManagedObjectContext 不起作用

NSManagedObjectContext:自动更新与否?

NSManagedObjectContext:撤消保存操作?

声明 NSManagedObjectContext 时出错

CoreData 多 NSManagedObjectContext 保存通知说明

NSManagedObjectContext: performBlockAndWait vs performBlock 通知中心