我很抱歉問這樣一個簡單的問題,但這是一個我無法找到答案的具體問題。iPhone上的內存管理
我不是原生的Objective-C程序員,所以我很抱歉如果我使用任何C#術語!
如果我在test.h
@interface test : something {
NSString *_testString;
}
定義一個對象,然後初始化它test.m
-(id)init {
_testString = [[NSString alloc] initWithString:@"hello"];
}
後來我明白,我會釋放它的dealloc中,因爲每個INIT應該有一個版本
-(void)dealloc {
[_testString release];
}
但是,我需要澄清的是如果在init中會發生什麼,我使用其中的一個e創建對象的快捷方法,我仍然在dealloc中釋放它嗎?這不會打破「一個初始化的一個版本」規則嗎?例如
-(id)init {
_testString = [NSString stringWithString:@"hello"];
}
規則是,如果您使用** new ** alloc或copy **創建對象,或者您保留它**,則需要將其釋放。以任何其他方式創建的對象**不得被釋放。修復它爲你。 – JeremyP 2010-06-09 15:32:17
謝謝。我在你的說明中進行了編輯。 – jcady 2010-06-09 18:08:29