在我正在开发的这个应用程序中,我使用核心数据来存储内容。我在 AppDelegate 的 didFinishLaunchingWithOptions 方法中填充数据库。在 View Controller 中,我使用 NSFetchRequest 提取所需的数据。
我的问题是,与提取数据相关的代码是否应该在 View Controller 中?或者我应该在为这些实体生成的 NSManagedObject 子类中创建单独的方法并从 View Controller 中调用它们?
有人可以解释一下吗?
谢谢。
Best Answer-推荐答案 strong>
您应该创建一个模型类,这意味着:
@interface DataImporter : NSObject
@property(nonatomic, readonly) CoreDataManager *coreDataManager;
- (id)initWithCoreDataManagerCoreDataManager *)coreDataManager;
- (void)importDataWithCompletionCallbackvoid (^)())completionBlock;
@end
它不是 NSManagedObject 子类,但它是负责将数据导入您的 CoreData 存储的对象。 importDataWithCompletionCallback 可以例如创建所有必需的 NSManagendObject 对象(取决于一些 JSON)并保存它们,在后台执行,完成后调用回调 block 。
子类化 NSManagendObject 不是一个好方法。
关于ios - 不确定核心数据代码应该放在 MVC 中的哪个位置,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21482656/
|