NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END

升級到 Xcode 10 , 新建類的時候發現頭文件中多了2個宏:swift

  1. NS_ASSUME_NONNULL_BEGIN
  2. NS_ASSUME_NONNULL_END

做用

這兩個東西是Nonnull區域設置(Audited Regions) 。指針

這兩個宏之間的代碼裏的全部簡單指針對象都被默認爲 ___nonnull,咱們只須要去指定 __nullable 的指針。code


背景

2014 年的 Apple WWDC 發佈了強語言 swift ,必需要指定一個對象是否爲空。爲了迎合swift,OC中增長了 __nullable___nonnull 用於指定對象是否爲空。對象

每一個屬性、方法都指定 ___nonnull__nullable 是一件很是繁瑣的事。爲了減輕開發工做量,蘋果提供了兩個宏:NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END 。這兩個宏之間的代碼裏的全部簡單指針對象都被默認爲 ___nonnull,咱們只須要去指定 __nullable 的指針。開發

本站公眾號
   歡迎關注本站公眾號,獲取更多信息