In un file .h, qual è la differenza tra:ios interfaccia iVar vs Proprietà
@interface ViewController : UIViewController
@property (strong, nonatomic) UIView* myView;
E
@interface ViewController : UIViewController{
UIView* myView;
}
In un file .h, qual è la differenza tra:ios interfaccia iVar vs Proprietà
@interface ViewController : UIViewController
@property (strong, nonatomic) UIView* myView;
E
@interface ViewController : UIViewController{
UIView* myView;
}
La differenza principale è che @property è visibile ad altri oggetti e che è possibile accedervi utilizzando un'istanza della classe.
È possibile utilizzare @synthesize nel file di implementazione per automatizzare le funzioni di definizione de getter setter nella propria implementazione.
Aggiornato (segue @suggerimento Graham Lee s')
Secondo l'identificatore di visibilità per l'istanza variabili (@protected/@private/@public), l'ivar può essere utilizzato nella vostra implementazione file, sottoclassi o altre classi. Il valore implicito è @ protetto, quindi nel tuo esempio sarà visibile al tuo file di implementazione e sottoclassi.
senza alcun modificatore di visibilità, come quello in questa domanda, sono implicitamente '@ protected'. Lungi dal non essere accessibili da altri oggetti, possono essere utilizzati in qualsiasi sottoclasse della classe in cui sono dichiarati. –
La prima è la dichiarazione di una proprietà, mentre il secondo è solo un ivar. Una proprietà è la dichiarazione automatica di un getter e un setter per un ivar, ma se non c'è ivar (come nel tuo primo esempio) la proprietà creerà anche l'ivar.
Breve e preciso .. !! perfezionare..!! Le variabili di istanza – Shradha
non utilizzare forte per ** myView ** creerà un ciclo di conservazione andare per [riferimento qui] (https://stackoverflow.com/a/11013715/3030400) –