我剛開始學習Objective-C。我讀了Cocoa成爲XCoder的書,我想我學會了基礎知識。現在,我在那裏之後我遇到這段代碼的在線教程:Objective-C初學者(發佈)問題
@synthesize name;
- (IBAction)changeGreeting:(id)sender {
self.name = textInput.text;
NSString *nameString = name;
if([nameString length] == 0) {
nameString = @"Cartman";
}
NSString *greeting = [[NSString alloc]
initWithFormat:@"Hello, my name is %@!", nameString];
label.text = greeting;
[greeting release];
}
我在這裏的問題是,我們不應該叫也對* nameString變量「釋放」? 或者通過這樣做,我也會清理應該在'dealloc'方法中釋放的'name'屬性? 因爲如果我理解正確,我必須在函數末尾的所有位於函數內部的變量上調用'release',但是在類屬性中,我只能在'dealloc'方法中調用'release'。
感謝
一般的共識是,如果你調用一個對象的分配,它應該被釋放的地方。我相信你創建NSString是自動釋放的。 – Luke 2011-06-08 22:06:40