2010年8月28日土曜日

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected

copyWithZone: を実装して Build And Analyze を掛けたところ下記の指摘を受けた。

Object with +0 retain counts returned to caller where a +1 (owning)
retain count is expected


原因は copyWithZone: で返すオブジェクトが autorelease となっていたため。copyWithZone: の戻りは作法として retainCount==1 として返す必要がある(呼び出し側がオーナーシップを持つ)。

NSCopying Protocol Reference
上記より抜粋:
The returned object is implicitly retained by the sender, who is responsible for releasing it.


それはそれでいいのだが、いじっているとこんな画面が出てきた。ほー。


こんな親切な説明が出てくるんだ。知らなかった。
(それだけ)

0 件のコメント:

コメントを投稿