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:メソッドは、オブジェクトのホイールを停止してUIActivityIndicatorView解放releaseします。
Objective-C では、各オブジェクトには、オブジェクトまたはオブジェクトが使用するすべての参照を追跡するために使用される内部カウンターがあります。[object retain]カウンターを 1 増やし、カウンターを 1[object release]減らします。カウンターがゼロに達すると、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 に答える