Освобождение/удаление UIViewController в MonoTouch

Насколько я понимаю, нам нужно хранить ссылки на наши объекты Cocoa при работе с ними в MonoTouch. Причина этого в том, что среда выполнения ObjC может по-прежнему содержать ссылки на объекты, и если на них нет «ссылок MonoTouch», они могут быть удалены сборщиком мусора, что приводит к ошибке EXC_BAD_ACCESS, как только среда выполнения ObjC пытается получить к ним доступ.

Скажем, у нас есть два подкласса UIViewController, VC1 и VC2. Если пользователь нажимает кнопку в VC1, пользовательский интерфейс переходит к VC2, и пользователь может перемещаться вперед и назад. Если я создаю новый экземпляр VC2 каждый раз, когда пользователь переходит к нему, то ссылки на старые экземпляры теряются, поэтому они удаляются сборщиком мусора, и приложение аварийно завершает работу при следующем распространении didReceiveMemoryWarningв UIViewControllers.

Как освободить старые ссылки, чтобы мне не приходилось каждый раз использовать один и тот же экземпляр VC2? Disposeпоказалось недостаточным.

5
задан cheesus SO stop harming Monica 23 July 2012 в 09:00
поделиться