我很抱歉问这样一个简单的问题,但这是一个我无法找到答案的具体问题。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