为了避免重复代码,我想创建一个单独的类文件来处理我的应用程序中的所有错误(主要是从后端块返回),并在用户可以关闭的警报弹出窗口中将它们呈现给用户。所以我创建了一个类,并把它放在里面:
import Foundation
class Errors {
func errors(errorText: String, currentViewController: UIViewController) {
var alert = UIAlertController(title: "There was an error", message: errorText, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Close", style: .Default, handler: nil))
currentViewController.presentViewController(alert, animated: true, completion: nil)
}
}
然后从任何viewController调用此函数时,我执行此操作:
Errors().errors("Error text", currentViewController: GameScreenViewController)
这项工作没有成功,编译器希望我在GameScreenViewController之后添加(),导致应用程序行为不正常。
我想这不是正确的方法,请你告诉我如何正确地做到这一点。请在Swift中回答。
答案 0 :(得分:1)
你需要使用'self'而不是GameScreenViewController作为第二个参数来控制它,你需要在视图控制器中显示错误。
您当前传递的内容不是对象,而只是一个类名。
class GameScreenViewController : UIViewConroller {
// your viewcontroller logic
func showError(){
// try this:
Errors().errors("Error text", currentViewController: self)
}
}