2012-09-24 13 views
9

Ich habe ein sehr seltsames Problem, das ich die letzten zwei Tage versucht habe zu lösen ... Ich hatte ein Stück Code, der auf Xcode 4.4 und iOS 5.1 einwandfrei funktionierte Simulator mit dem 5.1 SDK. Nachdem ich auf Xcode 4.5 und das 6.0 SDK aktualisiert habe, funktioniert mein Code im iOS 5.1 Simulator nicht mehr, obwohl er im iOS 6.0 Simulator einwandfrei funktioniert. Gab es Veränderungen, die mir nicht bewusst sind?Fehler in iPhone Simulator 5.1 mit Xcode 4.5 mit UIManagedDocument

Dies ist der 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]; 
    } 
} 

Aus irgendeinem Grund saveToURL und openWithCompletionHandler nie in der 5.1-Simulator zurück. Jeder weiß warum?

+1

Ich bin froh, dass ich Ihre Frage gefunden habe, weil ich genau das gleiche Problem habe und gerade herausgefunden habe, dass es ein Problem mit dem 5.1-Simulator zu sein scheint. Ich schätze, dass Ihr Code auch auf dem Stanford 2011-Kurs basiert (die Methoden "UseDocument" weisen darauf hin). – brainray

+0

Ja, meine UIManagedDocument-Einrichtung ist ein Kopieren und Einfügen aus Pauls Code. Der einzige Unterschied besteht in ein paar Zeilen, um Unterstützung für Lightweight-Migration hinzuzufügen. –

+0

Ich habe das gleiche Problem. Haben Sie Lösungen für dieses Problem gefunden? Vielen Dank! – Yan

Antwort

5

Ich habe das gleiche Problem unter iPhone Simulator 5.1. Die Datei wird nach einer langen Zeit (30 Sekunden) erstellt. Aber der Completion-Handler wird nie aufgerufen. Hast du es auf einem Gerät versucht?

BEARBEITEN: Dies scheint ein Fehler in iOS Simulator 5.1. Ich habe den Code auf meinem alten iPad mit iOS 5.1.1 kompiliert und es funktionierte ohne Fehler!

+0

Ich habe einmal getestet und es hat nicht funktioniert. Aber so viele Leute sagen mir, es ist nur Simulator, jetzt frage ich mich, ob es einen anderen Fehler in meinem Code gab, als ich getestet habe. –

5

Ich kann nicht für Ihr Projekt sagen, aber hier war es definitiv Xcode 4.5.

ich eine Kopie von Xcode 4.3.1 mit Simulator 5.1 auf einer virtuellen Maschine haben, und wissen Sie was: dass man

fehlerlos

funktioniert -> Xcode4.3.1/Simulator5.1 funktioniert!

-> Xcode4.5 /Simulator5.1 fehlerhaft

-> Xcode4.5.1/Simulator5.1 fehlerhaft ist

Als Abhilfe können Sie Version 5.0 des Simulators in Xcode herunterladen -> Einstellungen -> Downloads. Das funktioniert.

+0

Ich habe den 5.0 Simulator und das funktioniert perfekt. Vielen Dank! – Yan

+0

XCode 4.5.2 Der iOS 5.1 Simulator funktioniert nicht, der iOS 5.0 Simulator (und 6.0 Simulator) funktioniert nicht. Vielen Dank. – Joe

-1

Ich glaube nicht, dass das Problem im Simulator ist. Ich hatte genau das gleiche Problem (App läuft auf 6.0 aber nicht in 5.x) und ich habe auch versucht, es in einem Gerät auszuführen und es passiert genau das gleiche. (Ich erklärte mein Problem here)

Mein Problem passiert sowohl in 5.0 und 5.1. Zum Beispiel kann ich nicht einmal eine Vorlage "Master-Detail-Anwendung" in einem iOS 5.x-Simulator richtig ausführen, aber es funktioniert in 6.0. Auch wenn ich diese Vorlage in einem Gerät ausprobiere, funktioniert es nicht richtig. Also ich glaube wirklich, dass das Problem in XCode 4.5 ist.

+0

Bitte lesen Sie die Frage und die Antworten erneut: Das hier beschriebene Problem betrifft den 5.1-Simulator. Dein Problem betrifft iOS 5.x und iOS 6.0. – brainray

+0

Die ursprüngliche Frage besagt ein ähnliches Problem für mich. Der Benutzer kann es in 6.0 Simulator ausführen, aber nicht in 5.1 nach XCode 4.5 Update, das gleiche wie ich. – fabioalmeida