Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
I've just recently upgraded an application to iOS 8 and when I run it on a device, I noticed that all my print calls that happen when a UIViewController gets disposed of never gets called. But, they get called on the simulator, but not on device. I checked to see what is going on with the memory usage on the device; I noticed my memory keeps increasing at a serious rate that is not feasible for any application.
The easiest way to reproduce is to create a new C# iPhone Master-Detail project. DetailViewController will not get disposed of on the device, but will on the simulator.
I remember this not happening on previous versions of Xamarin.iOS, and UIViewControllers used to be disposed of on devices. Since the upgrade, they are not. On my real non-trivial application, a few navigations back forth on a few screens, 50mb of memory will be leaked; not good.
Am I doing something wrong? Am I missing something here? I've searched online head to toe and learning as much as I can on how memory management works for iOS. I understand what I need to do, but UIViewControllers are supposed to be disposed of automatically if it can as long as no one else is referencing it.
Doing some testing on this:
Calling GC.Collect(2) will dispose of the DetailViewController in the Master-Detail project.
Or if I get to a certain allocation point, it will start disposing over the viewcontrollers.
On my non-trivial app, I don't see this. I'll just to get more info.
I think this is invalid. More testing proves I'm doing something incorrect.