模拟器在UIManagedDocument documentState上停止?

时间:2012-10-24 15:41:36

标签: iphone objective-c cocoa-touch ios-simulator

在我很好奇为什么执行似乎停在下一行之后,没有在Xcode模拟器上使用Core Data(见下文)。这在设备上运行正常,但在模拟器[[self managedDocument] documentState]上返回(null)。我怀疑这是因为模拟器使用Mac而不是在磁盘上创建数据库,但我只是想检查以确保在实际设备上运行时我不会发生某些事情。

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

注意:

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

同时

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

1 个答案:

答案 0 :(得分:2)

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

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

  

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

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

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