大佬教程收集整理的这篇文章主要介绍了内存泄漏 – Xamarin.iOS简单的NavigationController内存泄漏,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
https://bitbucket.org/theonlylawislove/xamarinnavigationcontrollermemoryleak
问题在于,当我呈现UINavigationController时,导航控制器或其根视图控制器永远不会被垃圾收集.它虽然在iOS模拟器中工作.为什么这种内存泄漏只发生在设备上?如果在设备上运行示例项目,则永远不会在调用的解构器中看到Console.WriteLine.
我正在使用XCode5和XaR_534_11845@arin.iOS 7.0.4.171(商业版)
这是我用来演示泄漏的AppDelegate.
[Register ("AppDelegate")] public partial class AppDelegate : UIApplicationDelegate { UIWindow window; public override bool FinishedLaunching (UIApplication app,NSDictionary options) { window = new UIWindow (UIScreen.MainScreen.bounds); window.RootViewController = new UINavigationController(new RootController ()); window.MakeKeyAndVisible (); return true; } class RootController : UIViewController { public RootController () { NavigationItem.RightBarButtonItem = new UIBarButtonItem("Present",UIBarButtonItemStyle.bordered,(o,E) => { PresentViewController(new NavigationController(),true,new NSAction(() => {})); }); } } class NavigationController : UINavigationController { public NavigationController () :base(new TESTController()) { } ~NavigationController() { Console.WriteLine("~NavigationController"); } class TESTController : UIViewController { ~TESTController() { Console.WriteLine("~TESTController"); } public override void ViewDidAppear (bool animated) { base.ViewDidAppear (animated); Task.Factory.StartNew (() => { Thread.Sleep(2000); NSThread.MainThread.InvokeOnMainThread(new NSAction(() => { DismissviewController(true,new NSAction(() => { })); })); }); } } } }
以上是大佬教程为你收集整理的内存泄漏 – Xamarin.iOS简单的NavigationController内存泄漏全部内容,希望文章能够帮你解决内存泄漏 – Xamarin.iOS简单的NavigationController内存泄漏所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。