2012-01-19 16 views
0

iOSにアプリを書いています。私はメインクラスとUIViewサブクラスをいくつか持っているUILabelフィールド。隠しオブジェクトを解放しますか?

サブクラスのオブジェクトが画面外にあるときにメモリを解放したい(アニメーションによる表示を非表示にする)。これどうやってするの?

ViewController.h 
#import "Histogram.h" 
#import "HistogramDelegate.h" 

{ 
UIScrollView *filtersScrollView; 
UITapGestureRecognizer *tapGesture; 
UISwipeGestureRecognizer *swipeGesture; 
...some UILabels and other components. 
Histogram *_Histogram; 

} 

@property (nonatomic, retain) Histogram *_Histogram; 
... other properties 
... some functions 

@end 


ViewController.m 
-(void)viewDidLoad { 
_Histogram = [[Histogram alloc] initWithFrame:...]; 
} 
-(void)viewDidUnload // here i add nil value to objects, for ex. UIScrollView = nil. 

-(void)someFunc { 
[_Histogram hideHistogram]; 
} 

Histogram.h 
//some objects/fields like UILabels, UISliders, UIViews 


Histogram.m 
some functions. 
-(void)hideHistogram { 

} 

どのようにして、画面の外にあるとき、私は_Histogramと彼のオブジェクトがメモリから解放することができますか?私が割り当てて、_Histogramを初期化し、_Histogramを隠すと、私のアプリは遅くなります。

答えて

1

質問はあまり明確ではありません。とにかく、あなたのヒストグラムが隠されたらあなたの記憶を解放する方法を尋ねることを意味するならば:あなたがしなければならないことは、を呼び出した後です[_histogram release]; _histogram=nil; ヒストグラムファイルのdealloc関数では、そのクラスで。それ以外の場合、_histogramオブジェクトを解放すると多くの助けを受けることはありません

+0

はい、[_Histogram release]と入力するとエラーが発生します: 'release'は利用できません:自動参照カウントモードでは利用できません:/ –

+1

自動参照カウントを使用しています。自動参照カウントは、デフォルトで最新のXcodeで有効になっています。したがって、_ヒストグラムが必要ない場合は、それをゼロにしてください。それで、あなたはそれを参照していないし、それは自動的に解放されます。 – aqs

+0

私が_histogram = nilを作るとき;アプリケーションはまだ遅いです。私はヒストグラムでS7GraphViewライブラリを使用します。彼の方法で3つの配列を無用にする必要がありますか?すべてのS7GraphView関数はヒストグラムで初期化されます。多分これは私のアプリを遅くする。 –

関連する問題