Domanda

Ho un app iPhone con un thread secondario per gestire parsing XML. Dentro alcuni di questi metodi, ho bisogno di fare riferimento dizionari (per guardare in alto, non modifica) creata e popolata nel thread principale.

la documentazione di Apple indicato per me che le variabili globali potrebbe essere il modo migliore per ottenere questo risultato. Sono solo ora sicuro di ciò che l'attuazione sarà simile. Definire i dizionari in cima .m e accedervi normalmente all'interno del filo secondario?

È stato utile?

Soluzione

NSDictionary è thread-safe, quindi non è probabilmente un problema di threading a meno che l'initializer assegna il globale come NSMutableDictionary (non thread-safe) e poi il thread secondario tenta di accedervi mentre è ancora in fase di popolato.

(Se questo è il caso, il vostro initializer deve prima allocare il NSMutableDictionary in una variabile locale, popolano, quindi copiare il locale finito al globale utilizzando +dictionaryWithDictionary: o -initWithDictionary: di NSDictionary.)

In alternativa, potrebbe essere che non state mantenendo la globale quando inizializzandolo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top