我正在使用一个Constants.h文件来保存我的所有值。我这样声明:
static NSString *NAME = @"Name";
static NSString *MAILID = @"Mail-id";
static NSString *ADDRESS = @"Address";
我在代码中也使用这个键。但它总是显示警告未使用的变量"NAME"
如果我服用
const NSString *NAME = @"Name";
然后显示错误。所以请任何人帮助我,我该如何解决这个警告?
感谢:)
在C中,因此在Objective-C中,static
是具有文件级作用域的变量。#import
和#include
的效果与将头文件的文本复制并粘贴到源文件中的效果相同。因此,使用static
,每个包含标头的文件都会获得符号NAME
、MAILID
等的个人副本。如果不使用,编译器将因此警告您。
const
表示常数。如果在星号之前使用,则表示常量NSString
,因为NSString
是不透明类型,所以没有太多语义。如果您只使用const
,那么每个包含头的文件都会重新声明变量。所以你会得到一个类似的错误。
你可能想要的标题是:
extern NSString *const NAME;
也就是说:(i)estern
——不在这里,而是在另一个单元中;和(ii)CCD_ 12——它是指向CCD_。
然后在任何单个实现文件中添加:
NSString *const NAME = @"NAME";
否则,每个编译单元都会坐视不管,期望其他编译单元中的一个来定义它。因此,您会得到一个链接器错误,即该符号未定义。