从 Xcode 6.3 开始,Objective-C 中的类型可以用nullable
或标记nonnull
,这是 Apple 的博客文章。
问题是,如果两者都没有指定,那么编译器会将 Objective-C 代码导入为隐式解包到 Swift 中,例如NSView!
. 所以当一个对象实际上是nil 时,它会在从 Swift 访问时崩溃。这不会产生编译器错误。
由于这极容易失败,我希望编译器默认将 Objective-C 中的所有内容假定为nullable
,除非另有指定 vianonnull
或审核的区域宏NS_ASSUME_NONNULL_BEGIN / END
。怎样才能做到这一点?