グリッド ビューを描画していて、セレクターを起動するとEXC_BAD_ACCESS
エラーが発生します。UIButton
ゾンビ オブジェクトをオンにすると、次のメッセージが表示されます。
*** -[FooViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x91818f0
これが私がやっていることです:
BazViewController *baz = [[BazViewController alloc] initDesignatedInitializer];
FooViewController *foo = [[FooViewController alloc] initDesignatedInitializer];
[baz.view addSubview:foo.view];
これを ARC で実行しているため、FooViewController の割り当てが途中で解除される可能性があることがわかりました。
だから私はこのハックをしました:
NSMutableArray
という名前の BazViewController に ivar&property を作成し、viewControllers
代わりに次のようにしました。
BazViewController *baz = [[BazViewController alloc] initDesignatedInitializer];
FooViewController *foo = [[FooViewController alloc] initDesignatedInitializer];
[baz.view addSubview:foo.view];
[baz.viewControllers addObject:foo];
しかし、それでも上記と同じエラーが発生します。
グリッドを扱うビュー コントローラーで上記と同等の処理を行いました。(View Controllers 配列を作成し、そのオブジェクトの作成時にオブジェクトを追加します)。まだサイコロはありません。このVCが時期尚早に解放されるのを防ぐ別の方法を誰かが推奨できますか?