美文网首页
swift 自定义assert

swift 自定义assert

作者: SnailLi | 来源:发表于2020-04-15 17:34 被阅读0次

    在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)
    

    相关文章

      网友评论

          本文标题:swift 自定义assert

          本文链接:https://www.haomeiwen.com/subject/qlqhvhtx.html