Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument

老子叫甜甜 提交于 2019-11-27 12:32:37

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!