Bu işi yapar. Uygulama başlatıldığında SetupExceptionHandling() yöntemini çağırın. Sihir NSRunLoop parçasıdır. Ama uygulama, öngörülemeyen etkileri ile, bu noktada tuhaf bir durumda olacak. Bu nedenle, kullanıcı istisna ile ne yapacağına karar verdikten sonra uygulamayı öldürmeyi öneririm - örneğin, yeniden atarak.
public static class IOSStartupTasks {
private static bool _HaveHandledException;
public static void HandleException(object sender, UnhandledExceptionEventArgs e) {
if (!(_HaveHandledException)) {
_HaveHandledException = true;
UIAlertView alert = new UIAlertView("Error", "Bad news", "report", "just crash");
alert.Delegate = whatever; // delegate object should take the exception as an argument and rethrow when it's done handling user input.
alert.Show();
NSRunLoop.Current.RunUntil(NSDate.DistantFuture); // keeps the app alive, but likely with weird effects, so make sure you don't let the user back into the main app.
}
}
public static void SetupExceptionHandling() {
AppDomain domain = AppDomain.CurrentDomain;
domain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
IOSStartupTasks.HandleException(sender, e);
}
}
Bu gerçekten onun özgün sorusunu sormaz. –