在這裏,我們有從About Memory Management一個物體在ObjC節目自動釋放
一些實例中在第一示例
- (NSString *) fullName {
NSString *string = [[[NSString alloc] initWithFormat:@"%@ %@", self.firstName, self.lastName] autorelease];
return string;
}
在本例中是如何將上述方法稱爲
{
Person *aPerson = [[Person alloc] init];
NSString *name = aPerson.fullName;
[aPerson release];
}
所以我假設在代碼流到達大括號的花括號後,*名稱被自動釋放。
這是真的嗎?
一般來說,對象的自動釋放取決於引用該對象的變量的範圍和生命週期。
是否有任何標準來管理Objective-C程序中對象的自動釋放池?
謝謝。
在這種情況下,是的,'name'是自動釋放的,但僅僅是因爲getter顯式地分配並自動釋放它的返回值。在其他任何情況下,如果您沒有源代碼,則無法預測對象的生命週期和自動釋放狀態。 – 2012-05-05 10:47:03