2012-02-27 7 views
0

iPhone - dealloc - Release vs. nilに多少関連する質問がありましたが、私の質問には答えられませんでした。Xcode 4.2.1でストーリーボードを使用した場合のDealloc

ストーリーボードにボタン、UIScrollview、その中のラベルが作成されました。私が持っている

@interface ViewController : UIViewController{ 

    __weak IBOutlet UIScrollView *scroller; 
} 

@property (weak, nonatomic) IBOutlet UIButton *goButton; 

@property (weak, nonatomic) IBOutlet UILabel *label; 

@property (weak, nonatomic) IBOutlet UIScrollView *scroller; 

- (IBAction)pressGo:(id)sender; 

@end 

そしてViewController.mの上部にある:

@implementation ViewController 

@synthesize goButton; 

@synthesize label; 

@synthesize scroller; 

そしてviewDidUnloadでそれが作成:

[self setGoButton:nil]; 

[self setScroller:nil]; 

[self setLabel:nil]; 

scroller = nil; 

[super viewDidUnload]; 
を私は、彼らがこれを作成したViewController.hにオブジェクトをCtrlキーを押しながらドラッグすると

すべてが自動的に作成されます。私はdeallocreleaseへの多くの参照を見てきました。 このコードは、あらかじめ用意されたもので、メモリリークを防ぎますか?または、deallocを追加する必要がありますか? 私が行ったエラーについてはお詫び申し上げます...私はこれに新しいです。

+0

[IBOutletsはARCで強くなるべきか、弱いのですか?](http://stackoverflow.com/questions/7678469/should-iboutlets-be-strong-or-weak-under-arc) – sch

答えて

0

IBOutletが弱いとマークされている場合、viewDidLoadにnilに設定する必要はありません。 ARCでコンパイルしている場合、deallocを書く必要もありません。いずれの場合でも、deallocまたはrelease文を記述すると、コンパイラ自体がエラーを出すでしょう。

Xcode 4のARCがデフォルトのオプションである場合、コードがメモリに安全であることを確認してください。

+0

弱いオブジェクトを解放する必要はありませんか? – ET42

関連する問題