objective-c - Objective C 中的全局属性

标签 objective-c ios global-variables

我在 Constants.h 文件中以这种方式定义了一个枚举:

typedef enum {
    CalendarTypeMonth = 0,
    CalendarTypeWeek
} CalendarType;

然后在我的 View Controller 中,我确定日历类型应该是什么,并以这种方式将其存储在属性中:

@property (nonatomic) CalendarType myCalendarType;

现在我希望我项目中的所有类都可以访问日历类型。如何将此属性设置为全局/外部以便所有类都可以读取它?

编辑:我知道枚举的定义将在整个项目中可用。但我感兴趣的是myCalendarType。如何跨所有类访问 myCalendarType 的值?

最佳答案

您可以声明类方法来访问静态变量。

将这样的代码添加到您的实现文件中:

static MyStaticType staticVar = MyStaticTypeDefault;

+(BOOL)myStaticVar
{
    return staticVar;
}

+(void)setMyStaticVar:(MyStaticType)newValue
{
    staticVar = newValue;
}

并在接口(interface)文件中为该方法创建声明。 这比将所有静态值移动到 AppDelegate 要好得多。 无论如何,很多变体都是可能的 - 例如,您可以创建单例来存储应用程序的某些设置或使用 CoreData。

关于objective-c - Objective C 中的全局属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647331/

相关文章:

ios - 在 iOS 8 中输入视频时旋转

ios - 我想在“终端”(UITextView)中打印到新行,但是每当我点击完成按钮时,它都将替换那里的内容

ios - 获取本地 PDF 页面高度 - iOS

ios - 限制uitableview中的单元格选择区域

python - 在python中访问全局队列对象

php - 无法访问包含文件中的全局变量

ios - 是否可以发送推送通知而不振动设备

ios - 代号一 - iOS 调试构建安装失败

ios - 带有 Objective-C 选择器 'Method()' 的方法 'Method' 与具有相同 Objective-C 选择器的 'Method' 的 getter 冲突

Python:在模块和类之间共享全局变量