【发布时间】:2011-12-27 17:17:59
【问题描述】:
我在 Constants.h 文件中以这种方式定义了一个枚举:
typedef enum {
CalendarTypeMonth = 0,
CalendarTypeWeek
} CalendarType;
然后在我的视图控制器中,我确定日历类型应该是什么,并以这种方式将其存储在一个属性中:
@property (nonatomic) CalendarType myCalendarType;
现在我希望我项目中的所有类都可以访问日历类型。如何将此属性设置为 global/extern 以便所有类都可以读取?
编辑:我知道枚举的定义将在整个项目中可用。但我感兴趣的是myCalendarType 的值。如何在所有类中访问 myCalendarType 的值?
【问题讨论】:
-
要么将其存储在单例中,要么将其存储在您的 AppDelegate 中。
-
投反对票的人愿意解释一下吗?
-
哦,有很多可能的原因,我无法开始猜测反对者的想法:1)您的问题与枚举几乎无关,2)您不明白一个属性本质上已经是
extern,但是如果不使包含它的对象成为全局对象,就无法使其成为全局对象,3)您显然不熟悉 AppDelegate 和单例,即使您至少应该了解 AppDelegate在开始编码之前学习 iOS。可能还有其他几个。 -
3) AppDelegate 不用于共享数据或视图控制器之间的通信(尽管您可以将它用于此类事情,但它不是 AppDelegate 的用途)。并且创建一个单例类来共享单个变量是一种矫枉过正。
标签: objective-c ios global-variables