1

在我好奇为什么执行似乎停止在下一行之前,我没有在 Xcode 模拟器上使用过 Core Data(见下文)。这在设备上工作得很好,但在模拟器上[[self managedDocument] documentState]返回(null)。我怀疑这是因为模拟器使用 Mac 并且没有在磁盘上创建数据库,但我只是想检查以确保在实际设备上运行时没有发生我遗漏的事情。

if([[self managedDocument] documentState] == UIDocumentStateNormal) {
    [self scanDataFromServer:kALL_REACTOR_TEMPS];
}

笔记:

我不需要在模拟器上运行,我只是想检查应用程序如何在更大的 iPhone5 屏幕上运行,而 Apple 则可以将实际设备运送给我。

还:

  1. 模拟器设置为视网膜 4 英寸,我使用的设备是 iPhone4。
  2. 应用程序首先创建并填充核心数据,因此它不是丢失文件的情况。
4

1 回答 1

2

首先,UIDocumentState是一个 NSInteger 枚举——它永远不能为 nil 或 null。它可以是未初始化的(垃圾),也可以是零。

我不确定你的意思是什么:

我怀疑这是因为模拟器使用 Mac 并且没有在磁盘上创建数据库

模拟器使用计算机的硬盘作为磁盘,存储系统在模拟器和设备之间没有区别。当然,您的应用程序在模拟器上的根文件夹路径与在设备上的不同,但这并不重要。您可以在 Mac 上的应用程序文件夹中找到数据库文件,该文件夹位于~/Library/Application Support/iPhone Simulator/.

创建后我会仔细检查您的UIDocument,并确保它不是nil. 此外,记录fileURL文档并在您的计算机上找到该文件以确保它存在。

于 2012-11-01T16:14:01.307 回答