Benim iPhone uygulaması ile bazı bellek sorunları ayrıştırılması ve ben de bazı temel düşünüyordum. Eğer bir ivar kurarsam ve nesnemin ömründe onu asla kullanmazsam, üzerinde dealloc dediğimde sorun olur mu? Örneğin.Örnek değişkenler varsayılan olarak Objective-C'de sıfır olarak ayarlandı mı?
@interface testClass {
id myobject;
}
@property (nonatomic, retain) id myobject;
@end
@implementation testClass
@synthesize myobject;
- (id)init {
...
// Do I have to set myobject to nil here?
// So if myobject isn't used the dealloc call to nil
// will be okay? Or can you release the variable without
// having set every object to nil that you may may not use
...
}
...
// Somewhere in the code, myobject may be set to
// an instance of an object via self.myobject = [AnObject grabAnObject]
// but the object may be left alone
...
- (void)dealloc {
[myobject release];
[super dealloc];
}
@end
Mike Abdullah: Benim düzenlemede bu değişikliği yaptık. –
Doğru doğru, böylece bir işlevde oluşturulan normal değişkenler, daha sonra bildirdiğinizde 0/nil olarak ayarlanmadı mı? Sadece örnek değişkenler. Öyleyse, normal değişkenlerin, onu açıkça bir şeye ayarlayana kadar 'çöp' içereceğini doğru mu? –
Bu doğru. –