我正在使用 Xamarin,在更新到 iOS 7 sdk 后,我的应用程序不断崩溃......我有一个函数,我从我的第一个视图控制器传递到我的第二个视图控制器作为一个简单的操作:
public void Dismiss()
{
try{
this.PresentedViewController.DismissViewController (false, null);
}
catch(Exception ex)
{
string filePath = Path.Combine(path, "log.txt");
File.AppendAllText(filePath,"\n" + DateTime.Now + "\tISSUE:\t Closing colletions detail tab...\n\n" + ex.Message + " " + ex.StackTrace);
}
}
现在,即使在捕获异常之后,应用程序也会崩溃。我的日志中打印的是:
Objective-C exception thrown. Name: NSInvalidArgumentException Reason: [UILabel backdropView:willChangeToGraphicsQuality:]: unrecognized selector sent to instance 0x18c8ee40 at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSendSuper_bool_IntPtr (intptr,intptr, bool, intptr) at MonoTouch.UIKit.UIViewController.DismissViewController(Boolean animated, MonoTouch.Foundation.NSAction completionHandler) [0x00057] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIViewController.g.cs 747 at YltraRoute.MainViewController.CloseCollectionDetailTab()[0x00011]...
我什至不知道从哪里开始。那里没有太多帮助。
哦,它并不总是 [UILabel 背景视图...有时是 UIScrollViewPanGuestureRecognizer
所以我做了更多的搜索,似乎这可能是一个内存问题(对象已经被垃圾收集了)。
我从这里获得了该信息,因为另一个版本的故障是:
Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[__NSCFType backdropView:willChangeToGraphicsQuality:]: unrecognized selector sent to instance 0x1eb3ad70
因此,如果情况确实如此,我该怎么做。呈现视图控制器不可能已经被释放,对吗?并且呈现的视图控制器也在我的类中全局声明。