2013-03-12 10 views
15

Hata benObj-C'de neden "newVariable" gibi bir değişken bildiremiyorum? Başlangıçta da değişken adında <strong>yeni</strong> neden kullanamazsınız

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; 

var? (Gibi newString) bir özelliği bildirilmesi

+3

Çünkü bu adlandırma kuralları derleyici tarafından zorlanır. –

+0

bu yüzden obj -c kodlamada başka bir amacı var mı? –

+1

, çünkü yeni kongre, arayanlar tarafından tutulan nesnelere dönüş sağlayan yöntemler için kullanıldı – Ultrakorne

cevap

30

iki erişimci (alıcı/ayarlayıcı) yöntemleri sentezler:

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

amaç-Cı derleyici tarafından zorlanır bellek yönetimi için bir adlandırma kuralı sahiptir. new ("ayırma", "kopyala", "mutableCopy") ile başlayan yöntemlerin, arayan tarafından "sahip olunan" bir nesne döndürmesi gerekir. documentation'a bakın. Oluşturulan erişimci yöntemi kuralı takip etmiyor.

1

Bu adlandırma kuralı, Objective-C'de zaten kullanılıyor. Bu işi yapmak için sade eski myString gibi bir şey kullanmanız gerekecektir. Derleyici bir şey - derleyiciler seçici.

İlgili konular