日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NSAssert的使用

發布時間:2025/6/17 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NSAssert的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.jianshu.com/p/526dfd5cbb19

2016.08.04 12:06*?字數 517?閱讀 3504評論 3
  • NSAssert是一個預處理宏, 他的主要作用就是可以讓開發者比較便捷的捕獲一個錯誤, 讓程序崩潰, 同時報出錯誤提示

  • 使用方法:

    • NSAssert(x != nil, @"錯誤提示")
    • 當你的程序在運行到這個宏時, 如果變量x的值為nil, 此時程序就會崩潰, 并且拋出一個異常, 異常提示就是你后面寫的提示
  • 一些注意點

    • 錯誤提示是可以使用中文的
    • NSAssert還有幾個可以接收參數的宏
    • 如:?NSAssert2(condition, desc, arg1, arg2)
    • 他的作用是可以讓你的desc描述語句, 添加上參數, 讓你的異常捕獲更加精確
  • 發布版本

    • NSAssert也是一個預處理指令, 如果使用過多, 也會影響你的程序運行, 這時我們要像在發布版本時處理NSLog一樣處理這個預處理指令, 只不過他的處理方式有些不同
    • 首先進入項目工程文件
    • 選擇Build Settings
    • 搜索Perprocessor Macros
    • 在Release中添加一個規則:?NS_BLOCK_ASSERTIONS
    • 這時當你的APP處于發布版本時, 這個預處理指令就會失效了
  • 使用效果如下

    2016-08-04 11:58:55.225 NSAssert[4215:68280] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '提示10, 20'

    ?*** First throw call stack:

    ?(

    ?? ? 0 ? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c0fce65 __exceptionPreprocess + 165

    ?? ? 1 ? libobjc.A.dylib ? ? ? ? ? ? ? ? ? ? 0x000000010bb75deb objc_exception_throw + 48

    ?? ? 2 ? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c0fccca +[NSException raise:format:arguments:] + 106

    ?? ? 3 ? Foundation? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010b7c24de -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198

    ?? ? 4 ? NSAssert? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010b6777f0 -[ViewController viewDidLoad] + 336

    ?? ? 5 ? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c63ff98 -[UIViewController loadViewIfRequired] + 1198

    ?? ? 6 ? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c6402e7 -[UIViewController view] + 27

    ?? ? 7 ? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c516ab0 -[UIWindow addRootViewControllerViewIfPossible] + 61

    ?? ? 8 ? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c517199 -[UIWindow _setHidden:forced:] + 282

    ?? ? 9 ? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x0000000119d4c831 -[UIWindowAccessibility _orderFrontWithoutMakingKey] + 68

    ?? ? 10? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c528c2e -[UIWindow makeKeyAndVisible] + 42

    ?? ? 11? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c4a1663 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4131

    ?? ? 12? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c4a7cc6 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1760

    ?? ? 13? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c4a4e7b -[UIApplication workspaceDidEndTransaction:] + 188

    ?? ? 14? FrontBoardServices? ? ? ? ? ? ? ? ? 0x000000010ee75754 -[FBSSerialQueue _performNext] + 192

    ?? ? 15? FrontBoardServices? ? ? ? ? ? ? ? ? 0x000000010ee75ac2 -[FBSSerialQueue _performNextFromRunLoopSource] + 45

    ?? ? 16? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c028a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17

    ?? ? 17? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c01e95c __CFRunLoopDoSources0 + 556

    ?? ? 18? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c01de13 __CFRunLoopRun + 867

    ?? ? 19? CoreFoundation? ? ? ? ? ? ? ? ? ? ? 0x000000010c01d828 CFRunLoopRunSpecific + 488

    ?? ? 20? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c4a47cd -[UIApplication _run] + 402

    ?? ? 21? UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010c4a9610 UIApplicationMain + 171

    ?? ? 22? NSAssert? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x000000010b677b3f main + 111

    ?? ? 23? libdyld.dylib ? ? ? ? ? ? ? ? ? ? ? 0x000000010e83892d start + 1

    ?? ? 24? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x0000000000000001 0x0 + 1

    ?)

    ?libc++abi.dylib: terminating with uncaught exception of type NSException

  • 轉載于:https://www.cnblogs.com/sundaysgarden/p/10694321.html

    總結

    以上是生活随笔為你收集整理的NSAssert的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。