gpt4 book ai didi

xcode - 如何以向后兼容的方式使用 Objective-C __nonnull?

转载 作者:行者123 更新时间:2023-12-01 00:51:24 25 4
gpt4 key购买 nike

Xcode 最近添加了 __nonnull , __nullable等属性。但是,旧版本的 clang 和其他编译器不支持它们。

如何以兼容的方式使用这些属性?

我希望这样的事情会奏效:

#ifndef NS_ASSUME_NONNULL_BEGIN
#define __nonnull
#endif

但似乎 NS_ASSUME_NONNULL_BEGIN不是真正的宏,它在 Xcode7 中“未定义”。

这样做是有意义的:
#if !defined(__is_identifier) || __is_identifier(__nonnull)
#define __nonnull
#define __nullable
#endif

但是 Xcode 6 因“ token 不是预处理器子表达式中的有效二元运算符”错误而窒息。

最佳答案

正如问题中所解释的,所有好的方法似乎都不起作用。最直接的一个是:

#if !defined(__clang_major__) || __clang_major__ < 7
#define __nonnull
#define __nullable
#endif

关于xcode - 如何以向后兼容的方式使用 Objective-C __nonnull?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31105433/

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