【问题标题】:Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument使用 UIManagedDocument 的 iPhone Simulator 5.1 和 Xcode 4.5 中的错误
【发布时间】:2012-09-15 11:09:22
【问题描述】:

我有一个非常奇怪的问题,过去两天我一直在试图解决...我有一段代码在 Xcode 4.4 和 iOS 5.1 模拟器上运行良好,使用 5.1 SDK。在我更新到 Xcode 4.5 和 6.0 SDK 后,我的代码在 iOS 5.1 模拟器中停止工作......即使它在 iOS 6.0 模拟器中运行得非常好。有什么我不知道的变化吗?

这是代码:

- (void)useDocument
{
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self.database.fileURL path]]){
        [self.database saveToURL:self.database.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){
            [self setupFetchedResultsController];
    }];
    } else if (self.database.documentState == UIDocumentStateClosed){
        [self.database openWithCompletionHandler:^(BOOL success){
            [self setupFetchedResultsController];
        }];          
    } else if (self.database.documentState == UIDocumentStateNormal) {
        [self setupFetchedResultsController];
    }
}

由于某种原因,saveToURL 和 openWithCompletionHandler 在 5.1 模拟器中永远不会返回。有谁知道为什么?

【问题讨论】:

  • 很高兴我找到了你的问题,因为我遇到了完全相同的问题,只是发现这似乎是 5.1 模拟器的问题。我猜你的代码也是基于斯坦福 2011 年的课程(方法 'useDocument' 暗示了它)。
  • 是的,我的 UIManagedDocument 设置是对 Paul 代码的复制和粘贴。唯一的区别是添加了对轻量级迁移的支持的几行代码。
  • 我遇到了同样的问题。您是否找到任何解决此问题的方法?谢谢!
  • 还没有,但是正如其他人提到的,如果您在设备上运行它,它将正常工作。出于某种原因,如果我使用 Xcode 从设备运行,我仍然会遇到问题,所以我必须安装应用程序(使用 TestFlight)。
  • 你们安装Xcode 4.5.1了吗?对我来说,这个错误似乎仍然存在:模拟器 5.0 和 6.0 工作,但在模拟器 5.1 上仍然没有调用完成处理程序。

标签: ios xcode core-data xcode4.5 uimanageddocument


【解决方案1】:

我在 iPhone Simulator 5.1 下遇到了同样的问题。 文件在很长一段时间(30 秒)后创建。但是永远不会调用完成处理程序。您是否在设备上尝试过?

编辑:这似乎是 iOS Simulator 5.1 中的一个错误。我在我的旧 iPad 上用 iOS 5.1.1 编译了代码,它可以正常工作!

【讨论】:

  • 我测试过一次,但没有成功。但是很多人告诉我它只是模拟器,现在我想知道当我测试时我的代码是否没有另一个错误。
【解决方案2】:

不能说你的项目,但这里肯定是 Xcode 4.5。

我在虚拟机上有一份带有 Simulator 5.1 的 Xcode 4.3.1 副本,你猜怎么着:它完美无缺

-> Xcode4.3.1/Simulator5.1 有效!

-> Xcode4.5 /Simulator5.1 出现故障

-> Xcode4.5.1/Simulator5.1 故障

作为一种解决方法,您可以在 Xcode -> Preferences -> Downloads 中下载 5.0 版模拟器。那个有效。

【讨论】:

  • XCode 4.5.2 iOS 5.1 模拟器不工作,iOS 5.0 模拟器(和 6.0 模拟器)可以。谢谢。
【解决方案3】:

我不认为问题出在模拟器上。我遇到了完全相同的问题(应用程序在 6.0 上运行,但不在 5.x 上运行),我也尝试在设备中运行它,它发生的情况完全相同。 (我解释了我的问题here

我的问题发生在 5.0 和 5.1 中。例如,我什至无法在任何 iOS 5.x 模拟器中正确运行“主从应用程序”模板,但它在 6.0 中运行良好。即使我在设备中尝试此模板,它也无法正常工作。所以我真的相信问题出在 XCode 4.5 中。

【讨论】:

  • 请重新阅读问题和答案:这里描述的问题是关于5.1模拟器的。您的问题是关于 iOS 5.x 与 iOS 6.0。
  • 原始问题与我的问题类似。 XCode 4.5更新后用户可以在6.0 Simulator中运行但在5.1中不能运行,和我一样。
猜你喜欢
  • 2012-09-12
  • 2012-09-25
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 2014-05-01
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多