На этот вопрос не существует ни одного простого ответа, но я могу поделиться способом помочь в их поиске:
Как сказал @Miguel, такое исключение означает, что среда выполнения пытается повторно вспомнить экземплярBrowser.FolderListController
.Это означает, что один или несколько экземпляров Browser.FolderListController
собираются даже в том случае, если они все еще понадобятся позже.
Ваш первый шаг должен состоять в проверке жизненного цикла каждого Browser.FolderListController
экземпляров.,Например,
- там, где они созданы;
- там, где происходят вызовы;
- , где вы
Dispose
их вручную - что может конфликтовать слюбой сохраняющий MonoTouch попробуйте сделать, чтобы помочь; - обнулить или удалить из коллекций (т.е. удалить ссылки) ...
Как только вы узнаете жизненный цикл, вы можете:
добавить финализатор к Browser.FolderListController
и установить точку останова внутри него.Финализатор выполняется в отдельном потоке, поэтому он не скажет вам, где была удалена последняя ссылка - но он сообщит вам приблизительно когда (по крайней мере, до некоторого пункта);
добавить конструктор .ctor(IntPtr)
и добавить в него точку останова.Опять же, он не даст вам точную точку (где это требуется), но сообщит вам приблизительно , когда (по крайней мере, до другой балл);
Запустите ваше приложение, получите сбой, а затем посмотрите, что происходит между этими двумя моментами времени (по сравнению с вашим жизненным циклом).