我正在使用 Xcode 4.3.2 开发启用了 ARC 的 iPhone 应用程序。在项目中导航时没有崩溃,但是当我使用泄漏工具看到项目执行时,它显示 malloc 泄漏很多次,我不知道如何解决...
我在项目中使用了以下编码..主题是在加载数据时用另一个 View 隐藏一个 View ......
[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 启用时,我们必须注意是否存在泄漏......
最佳答案
您不需要使用线程来显示动画事件指示器。而不是
[NSThread detachNewThreadSelector: @selector(StartActivityIndicator) toTarget:self withObject:nil];
简单地使用
[self StartActivityIndicator];
使用线程很容易导致问题,例如在主线程之外访问 UI 相关的类和方法,或者使用声明为非原子的 setter,或者忘记添加 autoreleasepool 等等。除非必要,否则不要去那里。如果必须的话,请使用中央调度而不是创建自己的线程。 :)
关于iphone - 将事件指示器添加到另一个 View ( View 到另一个 View )时发生内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493029/