なんか初めてみる実行時エラーが出た。仕事だと辛いけど完全に趣味なので原因を見つけて解決する。
しばらく実験してみてわかったのは、object_setIvar
を使ってインスタンス変数を設定した時、値として指定したオブジェクトのリファレンスカウントがインクリメントされないようだった。ARC が有効なので手動で retain することも出来ないので、インスタンス変数を使うのをやめてプロパティに替えた方が良さそう。
ちなみに CFGetRetainCount()
という関数を使うと ARC が有効な時でもリファレンスカウントを数えられる。