簡體   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