gpt4 book ai didi

objective-c - 如何让编译器默认使用 `nullable`

转载 作者:IT王子 更新时间:2023-10-29 05:22:03 24 4
gpt4 key购买 nike

从 Xcode 6.3 开始,Objective-C 中的类型可以用 nullable 标记或 nonnull , here is Apple's blog post about this .

问题是,当两者都没有指定时,编译器会将 Objective-C 代码作为隐式解包导入到 Swift 中,例如NSView! .所以当一个对象实际上 nil 时,那么当从 Swift 访问它时它会崩溃。这不会产生编译器错误。

由于这极易失败,我希望编译器默认将 Objective-C 中的所有内容假定为 nullable ,除非通过 nonnull 另有说明,或审计区域宏 NS_ASSUME_NONNULL_BEGIN / END .如何实现?

最佳答案

不完全是你要找的东西,但从 Xcode 7 开始,你可以在 LLVM 编译器设置中打开 CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION,方法是传递 -Wnullable-to-nonnull-conversion 标志编译器标志。如果存在从 nullablenon-nullable 转换的隐式转换,这将发出警告。

关于objective-c - 如何让编译器默认使用 `nullable`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com