1

我的问题是关于在 iPhone 项目中使用活动指示器的问题。我有一个包含 UIActivityIndi​​catorView 的类

@interface StatusView : UIView 
{
    UIActivityIndicatorView *indicator;
    UILabel *textLabel;

}

- (id)initWithFrame:(CGRect)frame Text:(NSString*)text andShowIndicator:(BOOL)value;

在我的业务逻辑代码中,我调用 [indicator startAnimating] 并且框架出现在屏幕底部。该代码还包含一个释放指标的 dealloc 方法

- (void)dealloc 
{
    [indicator release];

    [super dealloc];
}

大多数情况下,该指标运行良好,但也有少数情况永远不会消失。

我是否总是需要显式调用 stopAnimating 方法?发布是否处理它?正确的用法是什么?

4

2 回答 2

1

stopAnimating:方法停止UIActivityIndicatorViewrelease释放对象的轮子。
在 Objective-C 中,每个对象都有一个内部计数器,用于跟踪对象或对象所使用的所有引用。[object retain]将计数器加 1 并将[object release]计数器减 1。当计数器达到零时,将调用 dealloc。release是关于内存管理stopAnimating:的,而UIActivityIndicatorView. 因此,如果您想停止为您的动画制作动画UIActivityIndicatorView,则必须调用stopAnimating:方法。在ARC中不必release这样做更好地使用ARC.

于 2012-09-27T13:26:51.213 回答
0

使用此对象时最好的方法是 stopAnimating 当您想停止时,从超级视图中删除( [activityObject removeFromsuperview] )并最终释放它。[活动对象释放];

于 2012-09-27T14:11:20.223 回答