gpt4 book ai didi

swift - UIAlertView 在 iOS 7 上崩溃

转载 作者:行者123 更新时间:2023-11-28 11:22:46 24 4
gpt4 key购买 nike

我刚刚在 App Store 上发布了我的应用程序,但是我刚刚收到电子邮件并告知我存在崩溃问题。

问题出在警报 View 上,它会在我的应用程序应该出现时崩溃(仅在 iOS 7 中)。我有一些本应解决此问题的代码,但它似乎在某些版本的 iOS 7 中不起作用。

这是我当前的代码:

@IBAction func resetAllButton(sender : AnyObject) {
//If statement to check whether the modern style alert is available. Prior to iOS 8 it is not.
if let gotModernAlert: AnyClass = NSClassFromString("UIAlertController") {

println("UIAlertController can be instantiated")

var alert = UIAlertController(title: "Start Over", message: "Are you sure you want to start over? This will erase your budget and all transactions.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "I'm sure!", style: UIAlertActionStyle.Default, handler:{ (ACTION :UIAlertAction!)in
self.resetView()
}))
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))

self.presentViewController(alert, animated: true, completion: nil)
}
else {

println("UIAlertController can NOT be instantiated")

var alertView = UIAlertView()
alertView.delegate = self
alertView.title = "Start Over"
alertView.message = "Are you sure you want to start over? This will erase your budget and all transactions."
alertView.addButtonWithTitle("I'm sure!")
alertView.addButtonWithTitle("Cancel")
alertView.show()
}
}

如何确保我的应用程序不会在任何版本的 iOS 7 或 8 上崩溃?

最佳答案

我在发布版本中遇到了同样的问题。这似乎是 swift 编译器的内部错误(使用 Xcode 6.0.1 (6A317) )

我实际上用这个方法解决了一个 objC 辅助类:

+ (BOOL) checkIfClassExists:(NSString *)className {
id c = objc_getClass([className cStringUsingEncoding:NSASCIIStringEncoding]);
if (c != nil) {
return YES;
} else {
return NO;
}
}

使用桥头调用我的 swift 代码

if ObjCFix.checkIfClassExists("UIAlertController") {
//iOS 8 code here
} else {
//iOS 7 code here
}

关于swift - UIAlertView 在 iOS 7 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com