2011-02-17 54 views
0

如果我這樣做目標C,約釋放物體

address = [[NSString alloc] initWithData:addressData encoding:NSASCIIStringEncoding]; 

後來我知道,我需要做的像[地址釋放]我用它做後質疑。 因爲「黃金」增加的「地址」變量的引用計數,這樣我需要做

[address release] 

但我不知道,我需要的,如果我這樣做

NSData *addressData = [NSData dataWithBytes:buf length:address_len]; 

我釋放在這個語句中沒有看到任何「alloc」。所以在完成這個之後我仍然需要[addressData release]嗎?

在此先感謝...

回答

1

解釋不,你不知道。如果獲得對象的方法是alloc,包含單詞copy,或者如果您已編輯該對象,則只需釋放(或自動釋放)對象。

+1

不要忘記新... – 2011-02-17 10:42:32

0

您不需要在第二個示例中執行發佈。一般規則是,如果您撥打分配,保留或複製,您將對發佈負責。