gpt4 book ai didi

iphone - 在 iOS 上使用 CoreData 处理类似于多个文档的东西

转载 作者:行者123 更新时间:2023-11-28 17:42:52 25 4
gpt4 key购买 nike

我一直在尝试确定一种优雅的方式来处理在 iOS 上使用 CoreData 实现设计,这类似于处理多个文档。

作为背景,我有一个培训应用程序,我想在其中支持培训类(class)的应用程序内购买。这些可能是包含 .sqlite 和一些支持媒体文件的文件包,这些文件在下载时最终会出现在 App Library 文件夹的 CourseName 子文件夹中。

我希望能够支持在我的应用程序根级别的表格中列出所有类(class)名称,并根据用户选择的类(class)在它们之间切换。

我的直觉是我可以将 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 级别完成。

我可以接受从 Library 文件夹加载类(class)时只读的类(class),如果它简化了拥有一个可写存储和多个只读存储的事情(也许 NSInMemoryStoreType?)

最佳答案

如果您所做的只是处理文档列表,那么 NSArrayNSUserDefaults 可能是您最好的选择。它在技术上没有那么令人印象深刻,但最简单的解决方案通常是最简单的。

至于每个文档,除非您真的有很多数据要读取,否则我不会费心使用 sqlite 数据库。我会选择一个包含 .json 文件的存档,该文件提供该文档的信息,即

索引.json

{
"name":"Document 1",
"author":"Bob Smith"
"pages":[
{ "title":"Title", "path":"title.html" },
{ "title":"Contents", "path":"contents.html" },
{ "title":"1", "path":"contents/1.html" }
]
}

其中每个页面都是一个 html 文件(或您想要的任何格式),它的位置在文档的 json 描述中指定。

只需创建一个实现 NSCoding 的 Document 对象 - 从上面的 JSON 创建它并将其存储在您的 NSUserDefaults 中。

然后,在启动时,只需使用标题作为 UITableViewCell 中的文本,从 NSUserDefaults 中读取的数组填充 UITableView。


但是,使用 sqlite 可能有正当理由 - 您是否打算对文档进行任何特别复杂的处理?

关于iphone - 在 iOS 上使用 CoreData 处理类似于多个文档的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com