0

我有一个项目,有一个我称之为“Keys.h”的文件

在该文件中,我声明了在整个项目中使用的字符串和整数,其中一些是整数,其中一些是字符串。

所有的字符串都可以正常工作;但是,如果我使用整数,我会收到未使用的变量警告。

对于字符串,(lfPrefs 是用户偏好的字典)

static NSString * kUserLFPrefs = @"lfPrefs";

这工作正常,不会产生任何错误。

对于整数,(我有整数来定义当前模式,因为它似乎比一直比较字符串要快一些)。

static int kModeLiveFeed = 1001;
static int kModeEventFeed = 2002;

这些工作正常,除了它们显示未使用的实体警告。

我更喜欢使用整数而不是字符串,主要是因为我读到比较更快,占用更少的内存等。

我的问题是如何在仍然可以访问我的整数键的同时停止警告?

(或者,我应该只使用字符串)

4

2 回答 2

1

You may be misunderstanding the meaning of static in C/Objective-C (this question should help). You should use const rather than static to define constants, and you should define the value of an integer/string constant in a .m file, with a corresponding declaration in the .h file. Or better yet, use an enum if you have a related set of integer constants.

Here is Apple's documentation on constants, which includes the above information as well as naming recommendations (e.g., PRConstant is preferred over the classic Mac OS-style kConstant).

于 2013-10-21T00:08:55.207 回答
1

我可以建议两种不同的方法。

如果您想将此类变量保留在 .h 文件中,您可能更喜欢使用 define 如果您不会更改值运行时间,例如;

#define kModeLiveFeed 1001

如果您要更改变量值运行时间,我建议将它们保存在 .m 文件而不是 .h 文件中,并使用单例仅创建 .m 文件的一个实例。然后,即使您继续从 .m 文件中收到警告,也可以通过以下步骤禁用它:

  • 从左侧导航器中选择您的项目以打开项目设置视图。
  • 然后,选择您的目标。
  • 转到 Build Phases 选项卡并打开编译资源区域。
  • 单击 .m 文件的右侧以将编译器标志添加为 -w

我希望它有所帮助。

于 2013-10-20T23:44:45.013 回答