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