swift 自定义assert

在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是一门新的适用于iOS,macOS,watchOS,tvOS开发的编程语言。尽管如此,Swift的...
    BoomLee阅读 1,793评论 0 4
  • 常量和变量 常量和变量把一个名字(比如maximumNumberOfLoginAttempts或者welcomeM...
    穷人家的孩纸阅读 2,448评论 0 3
  • Hello Word 在屏幕上打印“Hello, world”,可以用一行代码实现: 你不需要为了输入输出或者字符...
    restkuan阅读 3,236评论 0 6
  • 注释 与 C 语言多行注释不同,Swift 的多行注释可以嵌套在其它的多行注释之中。你可以先生成一个多行注释块,然...
    简_爱SimpleLove阅读 153评论 0 0
  • Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的新语言。然而,如果你有 C 或...
    XLsn0w阅读 934评论 2 1