swift 自定义assert

2020-04-15  本文已影响0人  SnailLi

在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)
上一篇下一篇

猜你喜欢

热点阅读