私のカスタムイニシャライザが失敗すると、私はnilを返すことになっています。私が初期化子で割り当てたメモリをクリーンアップするための規約は何ですか?私はdeallocでクリーンアップされることを期待していましたか?私は、割り当ては、配列を含む複雑なオブジェクトをデシリアライズなどされるだろうか前に私が効率的にすべてのエラー状態をチェックすることはできませんカスタムinitが失敗したときにメモリをクリーンアップする方法
- (id)init
{
if ((self = [super init])) {
instanceVar1 = [[NSString alloc] initWithString:@"blah"];
if (bad_thing_oh_noes) {
return nil;
}
}
return self;
}
- (void)dealloc
{
[instanceVar1 release];
[super dealloc];
}
より現実的な状況:ここ
は不自然な例です。
とにかく、nilを返す前に割り当てられたメモリをクリーンアップしますか?nilを返す前にselfにdeallocメッセージを送信するのですか、それともすべてが魔法のために管理されていますか?
愚かな私、私はそのドキュメントを読みますが、私は私の質問に答え一部を逃したと思いました!私のためにこれをクリアしてくれてありがとう。 :-) – Sandy
@Sandyあなたは歓迎です:) – albertamg