例えばこんな書き方。
|
なぜダメなのかということはよく分からないのですが、allocの際にretainされるので、retainされたままreturnするのは良くないよ。
という事のようです。
iPhone OS ではガーベジコレクションが採用されていないため、メモリ管理はretainとreleaseによって行われます。
なので、この辺りには気を使わないといけないです。
で、じゃあどう書けばいいんだ?という事になります。
メソッドにはallocをしながらインスタンスを作成してくれるメソッドがあります。
メソッドの前に「+」で宣言されている物です。
allocされないのは「ー」です。
UIImageについてAPIリファレンスを検索すると「+」のメソッドがあるのが分かると思います。
「imageWith〜」で始まるメソッドです。
という事で、以下の様に書くのが正しいです。
|
なかなかメモリ管理するのは大変ですが、こういった細かい部分が品質の向上につながると思うので、きっちりやっておかないといけないですね。
2009.05.18 追記
kudaraさんからのコメントの通り、以下のようにautoreleaseを付けておけば大丈夫でした。
|
ご指摘ありがとうございました。
