在Swift中,通过assert实现断言,assert可以帮助开发者比较容易的发现和定位错误
一个断言断定条件是true.通过声明一个断言来确保某个必要的条件是满足的,以便继续执行接下来的代码。如果条件满足了,那么代码像往常一样执行,如果不满足了,代码就停止执行了,应用也随之停下来了。
但是系统assert不一定适合我们现有的项目场景,因此做了一个自定义的assert。
swift创建File
import Foundation
import UIKit
#if DEBUG
func SLShowAssertAlert(_ message: String?) {
DispatchQueue.main.async(execute: {
let alert = UIAlertController(title: "Assert Triggered", message: message, preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "Kill the bug!", style: .cancel, handler: nil)
alert.addAction(cancelAction)
UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: true)
})
}
func SLAssert(_ condition: Bool,
file: StaticString = #file,
line: UInt = #line,
function:StaticString = #function) {
if condition {
SLShowAssertAlert("location:\(file) \n line:\(line) \n function:\(function)")
}
}
func SLAssertInfo(_ condition: Bool,
info: Any,
file: StaticString = #file,
line: UInt = #line,
function:StaticString = #function) {
if (condition) {
SLShowAssertAlert("location:\(file) \n line:\(line) \n function:\(function),\n info:\(info)")
}
}
#else
func SLAssert(_ condition: Bool) {
}
func SLAssertInfo(_ condition: Bool, _ info: Any) {
}
#endif
使用
SLAssert(true)