9

我有一个非常奇怪的问题,过去两天我一直在试图解决......我有一段代码在 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 模拟器中返回。有谁知道为什么?

4

3 回答 3

6

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

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

于 2012-09-25T05:58:55.397 回答
5

不能说你的项目,但这里肯定是 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 版模拟器。那个有效。

于 2012-09-25T14:27:41.517 回答
-1

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

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

于 2012-10-10T08:53:53.150 回答