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
を隠すと、私のアプリは遅くなります。
はい、[_Histogram release]と入力するとエラーが発生します: 'release'は利用できません:自動参照カウントモードでは利用できません:/ –
自動参照カウントを使用しています。自動参照カウントは、デフォルトで最新のXcodeで有効になっています。したがって、_ヒストグラムが必要ない場合は、それをゼロにしてください。それで、あなたはそれを参照していないし、それは自動的に解放されます。 – aqs
私が_histogram = nilを作るとき;アプリケーションはまだ遅いです。私はヒストグラムでS7GraphViewライブラリを使用します。彼の方法で3つの配列を無用にする必要がありますか?すべてのS7GraphView関数はヒストグラムで初期化されます。多分これは私のアプリを遅くする。 –