您能否帮助删除下面讨论的警告?
我有一个文件example.h
我宣布static const NSString *variable = @"cool";
现在,我有另一个文件multiple.m
。在这个文件中,我有一个function Bool var2 = [object methodname:variable];
这意味着,我将变量作为此函数的参数传递,但我得到了这样的警告:
variable is defined but not used
那么,如何删除此警告?
请帮帮我
答案 0 :(得分:2)
如果在除.m以外的其他文件中导入example.h,则编译器会对导入的每个文件进行检查,并报告该文件中未使用该变量的时间。
如果你想摆脱警告,我会将其从静态const更改为宏,如下所示:
#define Variable @"cool"
GCC不会报告未使用的宏。
答案 1 :(得分:1)
你应该做的是:
extern NSString * const variable;
然后
NSString * const variable = @"cool";
在实现(.m)文件中。
(另请注意const的位置;您可以在Apple自己的标题中看到此模式,例如FOUNDATION_EXPORT NSString * const NSFileTypeSocket
其中FOUNDATION_EXPORT
是extern
的#define。)