ARC projesinde çalışırken örnek değişkenlerle (arabirimde bildirilen), @property
ve @synthesize
ile çalışmanın uygun yolu nedir? Şimdi ne şudur:Örnek değişkenleri/özellik/sentezlemenin ARC ile kullanımı için doğru yolu
SomeClass.h:
@interface SomeClass : NSObject {
NSString *someString;
}
@property(nonatomic, copy) NSString* someString;
ve SomeClass.m:
@implementation SomeClass
@synthesize someString;
- (void)someMethod {
self.someString = @"Foobar";
}
şey sadece kullanma gibi çalışır başka yaklaşımlar olmasıdır @ özelliği:
SomeClass.h:
@interface SomeClass : NSObject
@property(nonatomic, copy) NSString* someString;
Erişme
someString
self
olmadan:
SomeClass.m:
@implementation SomeClass
@synthesize someString;
- (void)someMethod {
someString = @"Foobar";
}
vb Objective-c yeniyim, Java alıştım. O zaman özelliklerle çalışmanın doğru yolu nedir? Özel durumların özel davranışları olacağını anlıyorum, ama genel olarak en iyi yaklaşım nedir? (Genel olarak, sınıfın kendisinden ve "dışardan" değişkene erişmek istiyorum ve ARC'nin doğru şekilde çalışmasını istiyorum. Örneğin, bellek sızıntıları hakkında endişelenmek istemiyorum)
Sadece özellikleri tanımlayın. Ve Xcode 4.5+ kullanıyorsanız, sentezleme ifadesine bile ihtiyacınız yoktur. Bu uygun yol olarak kabul edilir, çünkü özellikler otomatik olarak iVars oluşturur. Bir iVar kullanmanız gerekiyorsa, Xcode 4.5+ sürümünde, eğer varsa, isminin isminden önce (_) otomatik olarak oluşturulmuşsa, "_" ifadesini kullanın, daha sonra aşağıdaki gibi oluşturun: @synthesize variable = _variable; – Petar
@ pe60t0 Artık '@ synthesize' ifadesini kullanma gereksinimi Xcode 4.4 ile tanıtıldı. –
Kötü, yorumunu şimdi düzenleyemiyorum. – Petar