·H:
#import <UIKit/UIKit.h>
#import "Todo.h"
@interface TodoCostApplyViewController : UIViewController
{
NSThread* headViewThread;
NSThread* tableViewThread;
}
@property (nonatomic, retain) NSThread* headViewThread;
@property (nonatomic, retain) NSThread* tableViewThread;
@end
的.m:
@interface TodoCostApplyViewController ()
@end
- (void)viewDidLoad
{
[super viewDidLoad];
headViewThread = [[NSThread alloc] initWithTarget:self
selector:@selector(drawHeadView)
object:nil];
[headViewThread start];
tableViewThread = [[NSThread alloc] initWithTarget:self
selector:@selector(drawTableView)
object:nil];
[tableViewThread start];
}
- (void)dealloc
{
[tableViewThread release];
[headViewThread release];
}
是否有关于tableViewThread和headViewThread的内存泄漏? 如果有泄漏,该怎么办? 提前谢谢!
答案 0 :(得分:0)
是的,存在潜在的泄漏。可能会多次调用viewDidLoad
,在这种情况下,您会看到内存泄漏。您viewDidLoad
中保留的所有内容最迟应在nil
(以及viewDidUnload
)中发布(并设置为dealloc
)。
如果您在viewDidLoad
中使用了合成的setter(正如您几乎总是那样),那么问题就会得到缓解,因为每次执行viewDidLoad
时,旧的线程对象都会在您分配时释放新的。