在MRC下
@property (nonmatic,strong)NSArray *currentArray;
- (void)viewDidLoad
{
[super viewDidLoad];
self.currentArray = [NSArray new];
}
- (void)dealloc
{
[_currentArray release];
[super dealloc];
}
这样会导致内存泄露,因为创建array 的时候,retaincount是1,赋值给属性(setter)方法的时候,retaincount 值增加1。而在dealloc的时候,只是释放了一次,所以会导致内存泄露。修改如下,self.currentArray = [NSArray array]; 这样的属性retain的dealloc释放,类方法产生的是autorelease对象。如下(strong 的setter方法)
- (void)setCurrentArray:(NSArray *)currentArray
{
if(_currentArray != currentArray)
{
[_currentArray release];
_currentArray = [currentArray retain];
}
}