Quando si e quando non è necessario il simbolo * (che è perché in ogg-c tutte le variabili come NSString sono variabili puntatore)?Obiettivo-C uso di puntatori
Ad esempio, quando è necessario eseguire "NSString *" anziché solo "NSString"?
Quando si e quando non è necessario il simbolo * (che è perché in ogg-c tutte le variabili come NSString sono variabili puntatore)?Obiettivo-C uso di puntatori
Ad esempio, quando è necessario eseguire "NSString *" anziché solo "NSString"?
In Objective-C, tutti i riferimenti agli oggetti sono puntatori, quindi è sempre necessario l'operatore puntatore quando si dichiara con un oggetto Objective-C.
Per altri tipi, l'utilizzo è esattamente lo stesso di C. Utilizzare i puntatori quando si desidera passare le strutture di dati o i tipi primitivi per riferimento.
Si utilizza l'asterisco per tutti gli oggetti Objective-C (come NSDictionary, NSString, NSNumber).
Per tutto ciò che è un tipo primitivo (int, double, float) non è necessario l'asterisco. Tuttavia, il prefisso NS non sempre significa che è necessario utilizzare un asterisco. Cocoa definisce alcune strutture (come NSInteger, NSRect, NSPoint) basate su tipi primitivi. Anche qui non usi l'asterisco. Un NSRect, ad esempio, è solo una struttura di un NSPoint e NSSize, entrambi composti da 2 CGFloats (un tipo primitivo).
È possibile passare un puntatore a uno di questi tipi o strutture primitivi utilizzando la notazione *.
L'eccezione è il tipo "id", che è approssimativamente equivalente a void * in C, e quindi la stella è inclusa nel tipo. –