应用程序崩溃只是与商店应用' NSInvalidArgumentException'

时间:2015-07-03 12:00:18

标签: ios xcode swift ios7

我有一个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();
    }
}

最好的问候

1 个答案:

答案 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

}