【发布时间】:2011-11-20 04:25:32
【问题描述】:
我一直在尝试确定一种优雅的方式来处理在 iOS 上使用 CoreData 实现设计,类似于处理多个文档。
作为背景,我有一个培训应用程序,我想在其中支持培训课程的应用程序内购买。这些可能是包含.sqlite 和一些支持媒体文件的文件包,下载后这些文件最终将位于App Library 文件夹中的CourseName 子文件夹中。
我希望能够支持在我的应用的根级别的表中列出所有Coursenames,并根据用户选择的一个在它们之间切换。
我的直觉是我可以将 Store 切换到适当的 sqlite。
NSString *sqliteFileForCourseName = [self sqliteFileForCourseName];
storeURL = [[self applicationLibraryDirectory] URLByAppendingPathComponent:sqliteFileForCourseName];
if(!__persistentStoreCoordinator)
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
// handle error
我认为这将是管理[persistentStoreCoordinator persistentStores] 中的项目的问题。
我不确定这是否是处理该功能的正确级别(多个持久存储),或者是否可以在 NSManagedObjectContext 级别完成。
如果从库文件夹中加载课程时,我可以忍受它们是只读的,如果它简化了拥有一个可写存储和多个只读存储的事情(也许NSInMemoryStoreType?)
【问题讨论】:
标签: iphone ios sqlite core-data