iphone - 将事件指示器添加到另一个 View ( View 到另一个 View )时发生内存泄漏

标签 iphone ios ios4 cocos2d-iphone

我正在使用 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/

相关文章:

ios - Xamarin.Forms iOS Simulator Build for Facebook Review

iphone - 获取 iPod 轨道的音乐数据

iphone - 更改 MKMapView 中当前位置的图像

objective-c - iphone sdk - Itunes 连接如何更改设备要求?

ios - 扫描成功后 AVFoundation 停止

ios - 逐行绘制到位图上下文的有效方法

iphone - 绘制 unicode 文本并剪切字符

iphone - Touches - parent 和 child 的用户互动

ios - insertTimeRange:ofTrack:atTime:error:(类AVMutableCompositionTrack)在iPhone上失败

iphone - 在条件中设置浮点值