我有一个App-app中提供的iOS应用程序。今天我测试应用程序,当应用程序尝试打开错误对话框时,它在我的iPhone4(iOS7)上崩溃。在iPhone5上没问题。
当我从XCode安装应用程序时,它可以工作...... XCode / Appstore是相同的版本。 我在XCode中读取控制台以找出应用程序崩溃的原因。我收到了这个错误:
以下错误:: ***因未捕获而终止应用 例外' NSInvalidArgumentException',原因:'应用程序尝试过 在目标上提出一个零模态视图控制器
我做错了什么? 当我打电话给我的errordialog时,我这样做:
self.showAlert("Error.", message: "Wrong credentials.", owner: self);
错误方法:
func showAlert(title:NSString, message:NSString,owner:UIViewController) {
if let gotModernAlert: AnyClass = NSClassFromString("UIAlertController") {
var alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert);
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil));
owner.presentViewController(alert, animated: true, completion: nil);
}
else {
let alertView = UIAlertView(title: title, message: message, delegate: self, cancelButtonTitle: nil, otherButtonTitles: "OK");
alertView.alertViewStyle = .Default;
alertView.show();
}
}
最好的问候
答案 0 :(得分:0)
使用此方法检查班级
+ (BOOL) checkIfClassExists:(NSString *)className {
id c = objc_getClass([className cStringUsingEncoding:NSASCIIStringEncoding]);
if (c != nil) {
return YES;
} else {
return NO;
}
}
&安培;迅速使用
if ObjCFix.checkIfClassExists("UIAlertController") {
//iOS 8 code here
} else {
//iOS 7 code here
}