如何从 H 文件访问变量

How to access a variable from a H file

我正在 Constants.h 文件中定义一些变量。

#ifndef Constants_h
#define Constants_h

static NSString *SERVER_IMG_URL = @"http://localhost/img";
...

如果我在 M 文件中导入 Constants.h。我怎样才能访问 SERVER_IMG_URL??

我想用它,为了不在所有文件中重复url,只调用这个变量。因为,如果我需要更改 IP,在一个文件中更改它,而不是更多。

谢谢

希望对您有所帮助..

将其写入常量文件..

#define kURLname   @"http://localhost/img"

在 .m 中导入常量文件后,在您的项目 .m 文件中像这样使用它...

NSString *SERVER_IMG_URL = kURLname;

在 Constant.h 文件中,您可以将变量声明为

FOUNDATION_EXPORT NSString *const SERVER_IMG_URL;

并在 .m 文件中

NSString *const SERVER_IMG_URL = @"http://localhost/img";

在 .pch 文件中导入 Contant.h 之后,整个项目都可以访问您的变量。

如果可以的话,我会避免使用#define。

它们更难调试,因为它们在预处理时被解压(所以你写的代码和你实际 运行 可能 完全 不一样)和缺少可以从命名类型获得的潜在类型安全检查。

我会使用 VMConstants.h 和 VMConstants.m 对来解决这个问题。

在您的 VMConstants.h

中从类似这样的内容开始
extern const NSString * const kURLname;

然后在您的 VMConstants.m 文件中

const NSString * const kURLname = @"http://localhost/img";

我会尽可能多地使用 const,以便它尽可能不可变(移动部分更少)并为您的 Constants 名称添加一个合适的前缀,以避免与其他认为第三方的人发生冲突库也需要常量。

我还会问问自己,您是否真的需要那个 Constants 文件,因为很可能随着时间的推移,它会变成垃圾场,并且会越来越大,直到您应用程序与它完全交织在一起。

更糟糕的是,人们可能会以非预期的方式重复使用这些值。颜色是发生这种情况的常见颜色,我发现突然间您的按钮和导航栏 UI 相互关联。

简而言之,尽可能避免暴露文字值(因此,将它们放在 m 中,只在 h 中暴露类型名称),并尽可能避免使用全局变量。