2012-02-22 11 views

risposta

27

È possibile dichiarare anche in questo modo.

@property (assign) BOOL locationUseBool; 

In sostanza, se dite nonatomic, e si genera le funzioni di accesso utilizzando @synthesize, quindi se più thread tentano di cambiare/leggere la proprietà in una sola volta, la cattiveria può accadere. È possibile ottenere valori parzialmente scritti o oggetti sovrascritti/conservati

In un programma multi-thread, un'operazione atomica non può essere interrotta parzialmente attraverso, mentre le operazioni nonatomiche possono.

25
@property (nonatomic, assign) BOOL locationUseBool; 

Nessun asterisco, nessuna copia, nessuna conservazione.

+1

Oppure è possibile omettere il secondo parametro (impostazione predefinita da assegnare). – Alexander

+0

Per chiarezza del codice, non lo consiglierei. – Sulthan

+0

Considera anche l'uso del tipo "bool" ufficiale C99. Ha un comportamento migliore durante la trasmissione ecc. – JeremyP

1

Questo ha funzionato per me.

@property (nonatomic) BOOL locationUseBool; 

Non c'è il simbolo dell'asterisco * nella dichiarazione di proprietà. Inoltre, l'uso di "assegna" è facoltativo.

Problemi correlati