可以使用初始化器进行静态浮点

时间:2014-03-10 07:48:39

标签: objective-c static floating-point xcode5 extern

我想在Obj-C中做这样的事情。例如:

extern float TRANSITION_TIME = 0.5f;

甚至更好:

static float TRANSITION_TIME = 0.5f;

然后它会自动导入标题!

但是,两者都会发出某种警告:'extern' variable has an initializer

3 个答案:

答案 0 :(得分:0)

尝试将此声明分开

extern float TRANSITION_TIME;
float TRANSITION_TIME = 0.5f;

虽然情况不同,但在this link中有一个很好的解释。

答案 1 :(得分:0)

你可以很容易地做到这一点:

#import <Cocoa/Cocoa.h>

static float TRANSITION_TIME = 0.5f;


@interface ClassName : NSObject
 ...// rest of codes goes here
@end

答案 2 :(得分:0)

我假设您希望定义一个单个变量TRANSITION_TIME,该变量可在多个位置访问并定义&amp;在一个地方初始化。

这里有一个函数或方法的并行 - 你在.h文件中放置一个函数或方法的声明,该文件包含在多个位置;并在.m(或.c等)文件中定义函数/方法,即在一个位置给它一个值。

要定义变量,请遵循相同的模式。在.h文件中,您声明了您的变量:

extern float TRANSITION_TIME;

你需要使用extern来表明这是一个声明在别处定义的变量[*]。然后在.m文件中提供定义:

float TRANSITION_TIME = 0.5f;

[*]对于.h中的函数/方法声明,缺少一个正文就足以表明函数/方法在别处被定义,并假设extern。但是对于函数,您还可以在声明开头包含extern(方法的语法不支持此冗余)。