我正在进行AFNetworking
实施,我发现了这个
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wassign-enum"
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:0 error:&error]];
#pragma clang diagnostic pop
assign-enum
警告显然已被关闭,但我不知道这是什么意思。
在这种情况下clang会发出什么警告?
答案 0 :(得分:8)
在没有clang pragma的情况下发出的警告是:
整数常量不在枚举类型的范围内 ' NSJSONWritingOptions' (又名' enum NSJSONWritingOptions')
查看NSJSONWritingOptions
的声明,我们发现0没有定义的值:
enum { NSJSONWritingPrettyPrinted = (1UL << 0) }; typedef NSUInteger NSJSONWritingOptions;
文档确实建议传递0,但没有像NSJSONWritingNoOption = 0
那样定义的选项,因此我们将一个常量(0)分配给一个枚举类型,该类型没有将0定义为可能的值。
答案 1 :(得分:0)
如果删除构建它的pragma,您将看到警告。 除此之外,你需要检查铿锵手册。