self.ivar =(コンビニエンスメソッド)をオブジェクトの'init'メソッドで使用するのは悪いことだと読みました。これは、継承を台無しにするからです。
ただし、オブジェクトをサブクラス化しないことがわかっている場合は、自己キーワード割り当てを使用しても大丈夫ですか?
i.e. self.iVar = [Object objectConvenienceMethod];
私が尋ねる理由はこれです。独自のinitメソッドを使用して新しいオブジェクトを作成し、そのメソッドでさまざまな初期割り当てを実行します。selfキーワードを使用しないため、iVarに直接割り当てます。したがって、convenienceメソッドではなくallocメソッドを使用します。つまり
iVar = [[Object alloc] init];
または、便利な方法を使用する場合は、それを保持します。つまり
iVar = [[Object convenienceMethod]retain]
しかし...メモリリークツールをオンにしてプログラムを実行すると、これらの割り当てはすべてメモリリークとして識別されます。
alloc-initの代わりにselfキーワードと便利なメソッドを使用できる場合は、これで問題を回避できます。
ただし、alloc-initアプローチを使用することを選択した場合、iVarをどこでリリースすることになっていますか?ちょうどdeallocで?
ご協力いただきありがとうございます :)
マイケル