Hatena::ブログ(Diary)

全力で気まぐれ このページをアンテナに追加 RSSフィード Twitter

2010-09-11

UIButtonはrelease不要


かなりハマっちゃいました(´Д`;)


簡単な経緯としては

[self.navigationController pushViewController:controller animated:YES];

で画面遷移をやっていて、遷移先から遷移元に戻るときに

modifying layer that is being finalized」っていうのがコンソールに出て落ちるという現象になりました。




色々と調べてたら、遷移先にあったUIButtonをreleaseしていることが原因だったみたいです。


UIButtonは次のように生成しますが、

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

これはautoreleaseインスタンスが返ってくるので、releaseが不要なのでした。




Objective-Cは慣れない上にメモリ管理もあるし、大変です(゚´Д`゚)

ついでにXcodeもまだまだ慣れない・・・


もっと頑張らなきゃー(`・ω・´)

keitanxkeitankeitanxkeitan 2011/02/08 18:47 まさに求めていた解答でした!
今まで偶然にもルートビューにしかボタンを配置していなかったので、普通に使う分にはUIButtonをリリースしているdeallocが呼び出されることはなく顕在化していませんでした。
それだけに原因が分からず苦労していましたがドンピシャでした!
ありがとうございますヽ(*´v`*)ノ

STAR_ZEROSTAR_ZERO 2011/02/09 17:32 お役に立てて何よりです(´▽`)

iosdeviosdev 2011/09/03 15:18 いままで問題なかったのですが、アプリの修正依頼に対応してから
modifying layer that is being finalized
が出るようになりました。

IBを使っているのですが、UIButtonをdeallocでreleaseしていたのが原因でした。

ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/STAR_ZERO/20100911/1284220037