2011-05-10 86 views
0

在我的主AppDelegate类通用软件,我定义常量:进入超常数

#define kNumerOfPages 2 

在AppDelegate_iPhone类和AppDelegate_iPad类我将有机会获得这个常数像正常的恒流。例如:

switch (i) { 
    case ([super kNumerOfPages]): 
    { 
     NSLog(@"FinalPage"); 
     break; 
    } 
} 

我可以作为一个常数访问它吗?

回答

2

#define是一个预处理器指令,它显示了什么标记用什么值替换。您不会在运行时通过对象访问它。所有你需要做的是包括相应的头文件,要使用在不断的文件。然后就做简单的

switch (i) { 
    case (kNumberOfPages) { 
     ... 
    } 
} 
+0

这是否意味着我需要在每个类来定义两个常量(_iPhone和_iPad )?这不是美...我可以在超类中编写属性以获取常量的值,但是我不会使用'case' ... – 2011-05-10 09:23:09

+0

您无法在case语句中使用实例变量,因为它们的值需要在编译时知道。在Prefix.pch文件中定义常量。然后,它将无处不在。 – Eimantas 2011-05-10 10:11:28

+0

我知道我不能使用实例变量。 Prefix.pch - 是一个很好的建议。谢谢,Eimantas! – 2011-05-10 10:54:21