使用UIManagedDocument的Xcode 4.5的iPhone模拟器5.1中的错误

时间:2012-09-24 00:26:16

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

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

3 个答案:

答案 0 :(得分:5)

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

编辑:这似乎是iOS模拟器5.1中的一个错误。我使用iOS 5.1.1在我的旧iPad上编译了代码,它没有错误!

答案 1 :(得分:5)

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

我在虚拟机上有一个带有模拟器5.1的Xcode 4.3.1的副本,然后猜测:那个完美无瑕地工作

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

- > Xcode4.5 /Simulator5.1有问题

- > Xcode4.5.1 / Simulator5.1有问题

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

答案 2 :(得分:-1)

我不相信问题出在模拟器中。我有完全相同的问题(应用程序在6.0上运行但在5.x中运行)我也试图在设备中运行它并且它发生完全相同。 (我解释了我的问题here

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