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

Bre*_*ola 9 xcode core-data ios uimanageddocument xcode4.5

我有一个非常奇怪的问题,我花了两天时间试图解决...我有一段代码在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];
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*kZp 5

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

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


bra*_*ray 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版的模拟器.那一个有效.