Lunedi, October 25th, 2010

iPhone: il problema di elaborare grandi quantità di dati

Se si creano applicazioni più complesse, la piattaforma mobile di Apple, in particolare quando utilizzati in una classe di spazio CoreData, c'è un problema "Freez" applicazioni. Quando si esegue più query in breve tempo nel thread dell'applicazione principale, vi è una situazione in cui la vista non viene aggiornata. In altre parole, se il programmatore vuole aggiornare una barra di avanzamento per esempio, deve eseguire operazioni più complesse in un thread aggiuntivo di scaricare il filo principale ed essere in grado di visualizzare aggiornamento.
E mentre la creazione di un nuovo thread, si riduce a un semplice codice:

 / * Coda di compiti - init (autorelease) * /
 NSOperationQueue * coda = [[NSOperationQueue alloc] init];

 / * Creazione di attività, che si aggiungono alla coda, che chiama il "compito" in un thread separato * /
 NSInvocationOperation * = funzionamento [[alloc NSInvocationOperation] initWithTarget: selettore di sé: @ selector (task) oggetto: nil];

 / * Aggiunge il compito di coda (thread) * /
 [AddOperation Coda: operazione];

 [Release Operazione];
 [Release Queue];

In caso di operazioni molto complesse con oggetti CoreData, soprattutto quando ci sono molti oggetti di questo tipo vengono aggiunti al database ed eseguito il metodo save NSManagedContext, può essere il caso che qualcosa vada storto. Come si comporta la vostra applicazione quando si tratta di questa situazione nel thread principale? La risposta non è chiara, perché dipende da una cosa molto importante. Vale a dire, a seconda se NSManagedContext è stato creato all'interno del thread principale o collaterale messaggio appena creato. Nel primo caso, l'applicazione si blocca, ma non smettere di correre! In altre parole, l'applicazione cercherà di fare un disco per l'effetto, ma senza successo. La soluzione a questo problema è di creare un nuovo oggetto all'interno dell'evento metodo NSManagedContext, così che, anche se alcune delle operazioni fallisce, l'applicazione continuerà ad eseguire.

Per ulteriori informazioni, vedere la documentazione .

Link a promuove l'immagine .


Voci correlate

Categorie: iPhone / mobili / guide
È possibile seguire tutte le risposte a questo articolo tramite il feed RSS 2.0 . Puoi anche scrivere i tuoi commenti , o per collegare a questo post sulla tua pagina.
  • Obraz CAPTCHY
    Cambia immagine
    *

    Protezione anti-spam da WP-SpamFree