gpt4 book ai didi

iphone - 找不到 momd 文件 : Core Data problems

转载 作者:IT王子 更新时间:2023-10-29 08:09:50 26 4
gpt4 key购买 nike

天哪!我搞砸了!

我是 Core Data 菜鸟,正在开发我的第一个 iOS 应用程序。经过多次堆栈溢出后,我正在使用这段代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"CoreData" ofType:@"momd"];
if (!path) {
path = [[NSBundle mainBundle] pathForResource:@"CoreData" ofType:@"mom"];
}
NSAssert(path != nil, @"Unable to find Resource in main bundle");

CoreData 是我的应用程序的名称。

我试图通过在我的 iPhone 模拟器中找到 sqlite 文件的路径,然后将其插入到该 sqlite 文件中,将初始数据放入应用程序。但在某个时候,我移动了 sqlite(认为它会创建一个新副本),从模拟器中删除了应用程序,然后 sqlite 文件就消失了。我不确定我是否遗漏了过程的某些部分(这是几个小时前的事),但最终结果是一切都搞砸了。

我如何重新证实这个 sqlite/momd 文件? “清理”和“清理所有目标”显示为灰色。

我很高兴从我的应用程序中发布相关代码,这将有助于阐明这个问题,但是有大量与我不理解的核心数据相关的代码,所以我不确定要发布哪一部分!非常感谢任何帮助。

最佳答案

这里有一些建议:

  • 您为获取 .mom(d) 文件而发布的代码并不是推荐的方式。使用 mergedModelFromBundles 代替,如

    self.managedObjectContent= [NSManagedObjectModel mergedModelFromBundles:nil];

    它负责获取路径、选择/合并正确的 mommomd,以及一步一步初始化 MOC。您应该使用它。但请注意,您需要偶尔清理构建过程,如 this SO question/answer 中所述。 .

  • 这表明,虽然通过 StackOverflow 进行爬网通常是好的,但当您处理像 CoreData 这样的大型框架时,这并不是最好的方法。

    老实说,花一天时间阅读 the documentation从头到尾。您可能想搜索一些代码并立即开始编码,但从长远来看,通读文档肯定会大大节省开发时间。

    另外,Marcus Zarra 的 CoreData 一书(参见 here)对我帮助很大。它可能看起来很贵,但绝对值得。

  • 在另一个话题上,我认为将预煮的 sqlite 文件放入模拟器的目录(在 ~/Library/Application Support/iPhone Simulator/) 甚至用于开发目的...因为它不能在真实设备上运行。如果您需要这样做,请将 sqlite 文件作为应用程序的资源,并在启动时将其复制到 DocumentsCaches,然后使用它。

关于iphone - 找不到 momd 文件 : Core Data problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536414/

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