2011-08-23 9 views
9

Come un doop stavo dichiarando Instant Variables (iVar) e poi @property nel file di interfaccia .h per un po 'di tempo.Devo continuare a usare iVar e @property (non anatomico, conservare) più @synthesize in Automatic Reference Counting (ARC)?

@interface MainGameViewController : UIViewController { 
    UserFactorsViewController *userFactorsViewController; 
    UITableView *myTableView; 
} 
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController; 
@property (nonatomic, retain) IBOutlet UITableView *myTableView; 

In Conteggio di riferimento automatico, devo semplicemente fare a meno di iVar e passare a @property? Dovrei avere persino la parola "conservare" nella proprietà? Cosa succede se sto distribuendo per iOS 4.3, dovrei comunque usare ARC?

risposta

10

Non mi sento come un doop, anche se il compilatore aggiungerà ivars per te se non li includi, molti ancora li dichiarano (molti autori di libri) per rendere il codice un po 'più facile leggere (più facile da distinguere tra ivar e proprietà).

Quando si crea una proprietà ora, Apple vuole che tu la pensi in termini di Object Graph, quindi fai qualche ricerca sugli attributi di proprietà "forti" e "deboli" invece di conservare e rilasciare.

Inoltre, iOS 4 è impostato come destinazione per ARC, quindi si dovrebbe essere ok. Ma credo che se volessi supportare iOS 3.0 dovresti gestire manualmente il mantenimento e le release come prima.

+0

Grazie. Ma qual è il modo "corretto" di farlo sotto ARC? dovrei avere solo proprietà e lasciare sintetizzare occuparmi del resto? e metti solo la proprietà (non anatomica) per ogni variabile oggetto FORTE che ho? – Ben

+2

'@property (nonatomic, strong) UserFactorsViewController * userFactorsViewController;' '@property (nonatomic, strong) IBOutlet UITableView * myTableView;' – 5StringRyan

+0

Grazie mille Hans. Apprezzalo. – Ben

Problemi correlati