我正在使用Xcode 4.3.2开发具有ARC的iPhone应用程序。在项目中导航时没有崩溃,但是当我看到使用泄漏工具执行项目时,可能会显示malloc泄漏;我不知道该如何解决...
我在项目..theme中使用了以下编码,以便在加载数据时隐藏其他视图。
[NSThread detachNewThreadSelector: @selector(StartActivityIndicator) toTarget:self withObject:nil];
-(void)StartActivityIndicator
{
hideView= [[UIView alloc] initWithFrame: CGRectMake(0,0,320,480)];
activityIndicator= [[UIActivityIndicatorView alloc] initWithFrame: CGRectMake(148,188, 24, 24)];
hideView.backgroundColor =[UIColor blackColor];
hideView.alpha=0.8;
[hideView addSubview:activityIndicator];
[self.view addSubview:hideView];
[activityIndicator startAnimating];
}
此编码或此编码的任何替代形式是否有错误。
当启用ARC时,我们必须注意是否泄漏.....
最佳答案
您不需要使用线程来显示动画 Activity 指示器。代替
[NSThread detachNewThreadSelector: @selector(StartActivityIndicator) toTarget:self withObject:nil];
只需使用
[self StartActivityIndicator];
使用线程很容易导致问题,例如,通过在主线程之外访问与UI相关的类和方法,或者使用被声明为非原子的setter,或者忘记添加自动释放池,等等。除非必须,否则不要去那里。并且,如果需要的话,请使用中央集中调度而不是创建自己的线程。 :)