Qual è la differenza tra l'utilizzo di obj-c di accesso e l'utilizzo di sintassi del punto?

StackOverflow https://stackoverflow.com/questions/1258360

Domanda

Da quando ho iniziato per lo sviluppo iPhone sono stato un pò confuso su quale sia il modo migliore per accedere ai dati come un membro di una classe.

Diciamo che avere una classe chiamata MyClass, e in essa ho:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;

Per l'attuazione, è meglio fare questo:

myObject.myInt = 1;

O questo?

[myObject setMyInt:1];

Questo vale per la lettura del valore troppo.

int newInt = myObject.myInt;

vs.

int newInt = [myObject myInt];
È stato utile?

Soluzione

Non ha molta importanza, sono la stessa cosa. La sintassi del punto è una comodità che è lì per voi da usare, e mi sento come fa il pulitore di codice.

L'unico caso in cui trovo che utilizzando la sintassi punto getta avviso o gli errori del compilatore è se si dispone di avere un oggetto id, anche se si sa che ha quella proprietà.

id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it

Altri suggerimenti

Il tipo di oggetto viene controllato staticamente con il. sintassi, ma non con la sintassi []. Questo significa che non è possibile utilizzare. se il tipo di oggetto non è specificato, e che è vantaggioso per usarlo quando lo è, in modo che il compilatore vi aiuterà di più.

La sintassi del punto in Objective-C è essenzialmente scorciatoia per l'utilizzo dei metodi di accesso. Il messaggio viene comunque inviato tramite il metodo di accesso. Speranza che risponde alla tua domanda

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