私は現在、Apressの「BeginningiPhone3Development」に取り組んでいます。サンプルアプリケーションで使用する標準は、次のコードのようなものです。
- (void)viewDidLoad {
BlueViewController *blueController = [[BlueViewController alloc]
initWithNibName:@"BlueView" bundle:nil];
self.blueViewController = blueController;
[self.view insertSubview:blueController.view atIndex:0];
[blueController release];
}
8.14.11 UPDATE(追加情報)
blueViewControllerは次のように宣言されています。
@property (retain, nonatomic) BlueViewController *blueViewController;
彼らが実行するときはいつでも、alloc
彼らはそれを一時変数(ここblueController
)に入れ、それを割り当て、そしてそれを解放します。この一時変数は私には不必要に思えます。
次のようにコードを簡略化しました。
- (void)viewDidLoad {
self.blueViewController = [[BlueViewController alloc]
initWithNibName:@"BlueView" bundle:nil];
[self.view insertSubview:blueViewController.view atIndex:0];
}
- (void)dealloc {
[blueViewController release];
[super dealloc];
}
私の変更したコードは、iPhoneシミュレーターでもまったく同じように実行されました。今、私はあなたが何かを割り当てるならあなたはそれを解放する必要があるという規則を知っています。そして、私は私のdealloc
方法でそれをカバーしています。しかし、(が呼び出されViewDidLoad
た関数)に直接リリースを含めることにはいくつかの利点がありますか?alloc
または、このようなメソッドにを含めることも同様に問題ありrelease
ませdealloc
んか?
助けてくれてありがとう、
-j