问题
I have a very weird problem I've spent the last two days trying to solve... I had a piece of code that was working perfectly fine on Xcode 4.4 and iOS 5.1 Simulator, using the 5.1 SDK. After I updated to Xcode 4.5 and the 6.0 SDK, my code stopped working in the iOS 5.1 Simulator... even though it works perfectly fine in the iOS 6.0 Simulator. Was there any change I'm not aware of?
This is the code:
- (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];
}
}
For some reason saveToURL and openWithCompletionHandler never return in the 5.1 Simulator. Any one knows why?
回答1:
I have the same problem under iPhone Simulator 5.1. The file is created after a long time (30 seconds). But the completion handler is never called. Did you try it on a device?
EDIT: This seems a bug in iOS Simulator 5.1. I compiled the code on my old iPad with iOS 5.1.1 and it worked without an error!
回答2:
Can't say for your project, but here it definitely was Xcode 4.5.
I have a copy of Xcode 4.3.1 with Simulator 5.1 on a virtual machine, and guess what: that one works flawlessly
-> Xcode4.3.1/Simulator5.1 works!
-> Xcode4.5 /Simulator5.1 is faulty
-> Xcode4.5.1/Simulator5.1 is faulty
As a workaround you can download version 5.0 of the simulator in Xcode -> Preferences -> Downloads. That one works.
回答3:
I don't believe that the problem is in the simulator. I had exactly the same problem (app runs on 6.0 but not in 5.x) and I also tried to run it in a device and it happens exactly the same. (I explained my problem here)
My problem happens both in 5.0 and 5.1. For instance, I can't even run a "Master-detail Application" template properly in any iOS 5.x simulator, but it works fine in 6.0. Even if I try this template in a device, it doesn't work properly. So I really believe that the problem is in XCode 4.5.
来源:https://stackoverflow.com/questions/12557442/bug-in-iphone-simulator-5-1-with-xcode-4-5-using-uimanageddocument