タグ

ブックマーク / kazzz.hatenablog.com (2)

  • deallocを明示的に書くこと - Kazzz's diary

    ARCの素晴らしい所はretain/releaseをコンパイラとランタイムが面倒を見てくれるお陰で、プログラマの負担が大幅に減ることだが、だからといってオブジェクトの参照と解放に対して無神経になって良い訳ではない。 以前にも書いたがARCは自らretain/releaseを書くことが許されていないので、思わぬ所で意図せずオブジェクトが確保/解放されている場合がありこれがバグを非常に解り難くしている。※ いつオブジェクトが解放されているかを知るためにはdeallocが動作していることを確認すれば良いわけで、ここから、まだ半年にも満たないObjective-Cプログラマ経験から 「デバッグで困ったらdeallocを明示的に書くべし」 という経験則が適用できる。 deallocを書くのは簡単だ。全てのクラスでdeallocメソッドをオーバライドできる。 - (void)dealloc { //後

    deallocを明示的に書くこと - Kazzz's diary
  • UIViewControllerのデリゲートが呼ばれないのには訳がある - Kazzz's diary

    ビューが表示される際にSettingsをロード、ビューが消える際にSettingsをセーブすれば良いはずだが、FooViewControllerに配置されているbtnBack(UIBarButtonItem)がタップされてdismissModalViewControllerAnimated:が呼ばれた際にviewDidDisappearは呼ばれないのである。 昨日のエントリを書いた後、親クラスのデリゲートメッセージを呼び出していないことをコメントで指摘頂いた時にピンと来たのだが、これは呼び出し側のViewControllerと呼び出される側のViewControllerが正しく連携していないことが原因だ。 呼び出す側、ルートのViewControllerを"A"、呼び出される側のViewControllerを"B"としよう。アプリケーション起動後にAを表示して、その後AからBを呼び出して表

    UIViewControllerのデリゲートが呼ばれないのには訳がある - Kazzz's diary
  • 1