19

Mi chiedevo quale sia il modo corretto di scrivere proprietà sintetizzate per tipi di dati primitivi (come bool) quando ARC è abilitato.Proprietà sintetizzate per tipi di dati primitivi che utilizzano ARC - weak o assign?

Ho usato per usare questo prima ARC:

@property(assign) bool isOn; 

Ma è la mia comprensione (forse sbagliato) che non si dovrebbe usare assign quando ARC è abilitato. Ho provato a sostituire questo con weak ma ottengo l'errore -

La proprietà dell'attributo "debole" deve essere di tipo oggetto.

Devo continuare a utilizzare assign?

risposta

29

Assign va bene. ARC sta per "Conteggio di riferimento automatico" e i tipi di dati primitivi non hanno conteggi di riferimento.

Weak non riuscita perché non c'è un oggetto, né riferimenti per ARC da gestire.

+0

quindi assegnare non è un sinonimo perfetto per debole allora. ma poi di nuovo, debole è l'impostazione predefinita giusto? –

+0

Per impostazione predefinita, ARC attiva il valore – deimus

+0

"Assign is be fine" Continuo a leggerlo. Ha una bella rima, ma sembra eludere il punto: è "assegnare" necessario !? Cosa succede se non usi "assegna"? – Rhubarb

0

Quando ARC Enabled è possibile scrivere proprietà sintetizzate per dati primitivi come (es: BOOL). @property (unsafe_unretained) bool isOn;