2013-03-12 8 views
15

errore ho ottenutoperché non posso dichiarare una variabile come "newVariable" in Obj-C?

error: property's synthesized getter follows Cocoa naming convention for returning 'owned' objects 
/Users/.../ViewController.h:12:40: 

note: property declared here 
@property (nonatomic, retain)NSString *newString; 

perché non posso usare nuova nel nome della variabile all'inizio? (Come newString)

+3

Poiché tali convenzioni di denominazione sono applicate dal compilatore. –

+0

quindi ha qualche altro scopo nella codifica obj -c? –

+1

perché nuovo per convenzione viene utilizzato per i metodi che restituiscono gli oggetti che vengono trattenuti dal chiamante – Ultrakorne

risposta

30

Dichiarare una proprietà sintetizza due di accesso (getter/setter):

-(NSString*)newString; 
-(void)setNewString:(NSString*)newString; 

Objective-C ha una convenzione di denominazione per la gestione della memoria che viene applicata dal compilatore. I metodi che iniziano con new (anche "alloc", "copy", "mutableCopy") sono necessari per restituire un oggetto che sarà "posseduto" dal chiamante. Vedi lo documentation. Il metodo di accesso generato non segue la regola.

1

Questa convenzione di denominazione è già utilizzata in Objective-C. Dovrai usare qualcosa come semplicemente il vecchio myString per far funzionare questo. È una cosa del compilatore - i compilatori sono pignoli .

Problemi correlati