如何从H文件

时间:2015-05-27 11:07:31

标签: ios objective-c constants

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

#ifndef Constants_h
#define Constants_h

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

如果我在M文件中导入Constants.h。我如何访问SERVER_IMG_URL ??

我想使用它,不重复所有文件中的url,只调用此变量。因为,如果我需要更改IP,请将其更改为一个文件,而不是更多。

由于

3 个答案:

答案 0 :(得分:3)

我希望这会有所帮助..

在常量文件中写这个..

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

在.m中导入常量文件后,在你的项目.m文件中使用它...

NSString *SERVER_IMG_URL = kURLname;

答案 1 :(得分:2)

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

FOUNDATION_EXPORT NSString *const SERVER_IMG_URL;

并在.m文件中

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

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

答案 2 :(得分:1)

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

它们更难调试,因为它们在预处理时被解压缩(因此您编写的代码和实际运行的代码可能相当相同)并且缺少可能从中获得的潜在类型安全检查命名类型。

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

从VMConstants.h中的类似内容开始

extern const NSString * const kURLname;

然后在你的VMConstants.m文件中

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

我会使用尽可能多的const,因为它尽可能不可变(运动较少的部分)并为你的常量名称添加一个合适的前缀,以避免与认为他们的第三方库需要的任何其他人发生冲突一个常数。

我也会问你自己真的是否需要Constants文件,因为它很可能会随着时间的推移变成一个倾销的东西,只是成长并增长直到你的应用程序完全交织在一起它。

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

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