2012-09-24 6 views
9

Ho un problema molto strano che ho passato gli ultimi due giorni a cercare di risolvere ... Ho avuto un pezzo di codice che funzionava perfettamente su Xcode 4.4 e iOS 5.1 Simulatore, utilizzando l'SDK 5.1. Dopo aver aggiornato Xcode 4.5 e 6.0 SDK, il mio codice ha smesso di funzionare in iOS 5.1 Simulator ... anche se funziona perfettamente nel simulatore di iOS 6.0. C'è stato qualche cambiamento di cui non sono a conoscenza?Bug in iPhone Simulator 5.1 con Xcode 4.5 usando UIManagedDocument

Questo è il codice:

- (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]; 
    } 
} 

Per qualche ragione saveToURL e openWithCompletionHandler mai tornare in 5.1 Simulator. Qualcuno sa perché?

+1

Sono felice di aver trovato la tua domanda, perché ho esattamente lo stesso problema, e ho appena scoperto che sembra essere un problema con il simulatore 5.1. Immagino che il tuo codice sia basato anche sul corso di Stanford 2011 (i metodi 'useDocument' lo suggeriscono). – brainray

+0

Sì, la mia configurazione di UIManagedDocument è una copia e incolla dal codice di Paul. L'unica differenza è un paio di righe per aggiungere il supporto per la migrazione leggera. –

+0

Ho lo stesso problema. Hai trovato qualche soluzione a questo problema? Grazie! – Yan

risposta

5

Ho lo stesso problema in iPhone Simulator 5.1. Il file viene creato dopo un lungo periodo (30 secondi). Ma il gestore di completamento non viene mai chiamato. Hai provato su un dispositivo?

MODIFICA: sembra un errore in iOS Simulator 5.1. Ho compilato il codice sul mio vecchio iPad con iOS 5.1.1 e ha funzionato senza errori!

+0

Ho fatto un test una volta e non ha funzionato. Ma così tante persone mi stanno dicendo che è solo un simulatore che ora mi chiedo se non ci fosse un altro bug sul mio codice quando ho provato. –

5

Non posso dire per il tuo progetto, ma qui sicuramente Xcode 4.5.

Ho una copia di Xcode 4.3.1 con Simulator 5.1 su una macchina virtuale, e indovinate un po ': che uno funziona perfettamente

-> Xcode4.3.1/Simulator5.1 funziona!

-> Xcode4.5 /Simulator5.1 è difettoso

-> Xcode4.5.1/Simulator5.1 è difettoso

Come soluzione alternativa è possibile scaricare la versione 5.0 del simulatore in Xcode -> Preferenze -> Download. Quello funziona.

+0

Ho il simulatore 5.0 e funziona perfettamente. Grazie! – Yan

+0

XCode 4.5.2 Il simulatore iOS 5.1 non funziona, il simulatore iOS 5.0 (e il simulatore 6.0) lo fa. Grazie. – Joe

-1

Non credo che il problema sia nel simulatore. Ho avuto esattamente lo stesso problema (l'app funziona su 6.0 ma non su 5.x) e ho anche provato a eseguirlo su un dispositivo e succede esattamente lo stesso. (Ho spiegato il mio problema here)

Il mio problema si verifica sia in 5.0 che in 5.1. Ad esempio, non posso nemmeno eseguire correttamente un modello "Applicazione dettagli master" in qualsiasi simulatore iOS 5.x, ma funziona correttamente in 6.0. Anche se provo questo modello in un dispositivo, non funziona correttamente. Quindi credo davvero che il problema sia in XCode 4.5.

+0

Rileggi la domanda e le risposte: il problema qui descritto riguarda il simulatore 5.1. Il tuo problema riguarda iOS 5.x vs iOS 6.0. – brainray

+0

La domanda originale afferma un problema simile al mio. L'utente può eseguirlo in 6.0 Simulator ma non in 5.1 dopo l'aggiornamento di XCode 4.5, come me. – fabioalmeida