繁体   English   中英

目标C中的全球财产

[英]Global Property in Objective C

我有这样一种在Constants.h文件中定义的枚举:

typedef enum {
    CalendarTypeMonth = 0,
    CalendarTypeWeek
} CalendarType;

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

@property (nonatomic) CalendarType myCalendarType;

现在我希望项目中的所有类都可以访问日历类型。 如何将此属性设置为global / extern,以便所有类都可以读取此内容?

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

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

将此类代码添加到您的实现文件中:

static MyStaticType staticVar = MyStaticTypeDefault;

+(BOOL)myStaticVar
{
    return staticVar;
}

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

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

在[Project Name] _Prefix.pch文件中,您可以添加以下语句:

#import "Constants.h"

这样,您将使枚举可用于项目中的每个文件。

编辑:要访问该值,我建议将其作为应用程序委托的全局属性。 为了更进一步,您可以使应用程序使用类别委托NSObject方法,因此它可能类似于:

CalendarType current = [self appDelegate].currentCalendarType

注意您的属性现在是全局可获取/可设置属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM