【问题标题】:Access to superclass's constant访问超类的常量
【发布时间】:2011-05-10 09:12:34
【问题描述】:

在我的通用应用程序的主 AppDelegate 类中,我定义了一个常量:

#define kNumerOfPages 2

在 AppDelegate_iPhone 类和 AppDelegate_iPad 类中,我可以像普通常量一样访问这个常量。示例:

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

我可以作为常量访问它吗?

【问题讨论】:

    标签: objective-c case constants c-preprocessor


    【解决方案1】:

    #define 是一个预处理器指令,它显示用什么值替换什么标记。您不会在运行时通过对象访问它。您需要做的就是在要使用该常量的文件中包含适当的头文件。然后只需执行简单的操作

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

    【讨论】:

    • 这是否意味着我需要在每个类(_iPhone 和 _iPad)中定义两个常量?这不是美...我可以在超类中编写属性来访问常量的值,但是我不能使用case...
    • 您不能在 case 语句中使用实例变量,因为它们的值需要在编译时知道。在 Prefix.pch 文件中定义常量。然后它将无处不在。
    • 我知道我不能使用实例变量。 Prefix.pch - 是一个很好的建议。谢谢你,艾曼塔斯!
    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 2013-03-10
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多