假设我有一个名为MyTestClass.h的类。
类结构看起来像
@interface MyTestClass : NSObject {
NSString *testString;
}
@property (nonatomic, retain)NSString * testString;
@end
.m 文件
@implementation MyTestClass
@synthesize testString;
-(id) init{
[self setTestString:@""];
return self;
}
-(void)dealloc{
[self.testString release];
testString = nil;
[super dealloc];
}
@end
现在我创建了一个MyTestClass对象并分配了testString两次
MyTestClass * myTestClass = [[MyTestClass alloc] init];
[myTestClass setTestString:@"Hi"];
[myTestClass setTestString:@"Hello"];
现在我想,我的 testStrings 内存泄漏了两次!(一个通过init()另一个通过我的第一个setTestString方法)
我对么?还是会@property (nonatomic, retain)
处理/释放以前分配的内存?
或者,在这种情况下,我是否需要像下面的代码一样覆盖MyTestClass.m中的setTestString()
-(void)setTestString:(NSString *)tempString{
[testString release];
testString = nil;
testString = [tempString retain];
}
对此问题的任何帮助表示赞赏。
谢谢。