[英]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.