【问题标题】:How to get rid of nullability warning in an objective c typedef?如何摆脱目标 c typedef 中的可空性警告?
【发布时间】:2015-12-21 07:08:39
【问题描述】:

此代码在 XCode 中生成“指针缺少可空性类型说明符”警告,我无法猜测如何使警告静音。

NS_ASSUME_NONNULL_BEGIN

@interface MyClass : NSObject

typedef id (^MyBlock)(id object);

@end

NS_ASSUME_NONNULL_END

以下内容不会使警告静音:

typedef __nonnull id (^MyBlock)(__nonnull id object);
typedef nonnull id (^MyBlock)(nonnull id object);

如果有任何建议,我将不胜感激。

谢谢。

【问题讨论】:

    标签: objective-c xcode cocoa


    【解决方案1】:

    typedef 类型通常不具有固有的可空性——它们可以 根据上下文很容易可以为空或不可为空。 因此,typedef 类型不被假定为非空,即使在 审核区域.[1]

    以下语法工作正常

    typedef __nonnull id (^MyBlock)(__nonnull id object);
    

    【讨论】:

    • 谢谢!你是对的,它确实有效。不过,我必须构建干净才能让 xcode 丢弃警告。
    • 您有报价来源吗?我最近向 clang 报告了这个错误,但如果我明显错了,我想知道。 :)
    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多