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