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 的指针。开发

本站公众号
   欢迎关注本站公众号,获取更多信息