关于到处发出警告的问题

时间:2009-11-20 07:18:32

标签: iphone objective-c

您能否帮助删除下面讨论的警告?

我有一个文件example.h

我宣布static const NSString *variable = @"cool";

现在,我有另一个文件multiple.m。在这个文件中,我有一个function Bool var2 = [object methodname:variable];

这意味着,我将变量作为此函数的参数传递,但我得到了这样的警告:

variable is defined but not used

那么,如何删除此警告?

请帮帮我

2 个答案:

答案 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_EXPORTextern的#define。)