Jul*_*les 0 iphone cocoa-touch objective-c ios
当我试图重置一个表格视图时,我得到了内存泄漏,我以为我可以在之前发布,但这没有用.
我需要做什么?
-(void) resetTable{
recordOffset = 10;
rOFactor = 0;
booShowMoreCell = false;
self.transactionsArray = [[NSMutableArray alloc] init]; // leak here
}
Run Code Online (Sandbox Code Playgroud)
假设transactionsArray是一个保留属性,那么您遇到的问题是NSMutableArray被保留两次.
设置保留属性时,它会释放旧值,并保留新(传入)值.alloc方法也保留了对象.
所以
// \/--- retain count = 2 \/-- retain count = 1
self.transactionsArray = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
解决此问题的最短方法是自动释放NSMutableArray:
self.transactionsArray = [[[NSMutableArray alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
以上行有一种方便的方法:
self.transactionsArray = [NSMutableArray array];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2885 次 |
| 最近记录: |