A類有一個UIImage。不正確的使用靜態變量?
B類有一個靜態引用類類型A的B類被實例化
之前,我想調用類B中的靜態方法來分配類A的一個實例
+ (void)setClassAReference:(ClassA*)classA
{
classA_ = classA;
}
這可能嗎?
在我深入研究當前的項目之前,我創建了一個示例,並能夠設置一個整數值,然後使用它實例化B,並保留存儲值並允許訪問它。
然而,在我的當前項目,XCode的拒絕讓我傳遞一個整數值:
非靜態方法的類A:B類實例化
- (UIImage*)imageWithIdentifier:(ImageIdentifier)identifier; // identifier is enum type
後,我試着在A中調用方法:
UIImage *img = [classA_ imageWithIdentifier:ImageIdentifier_Foo];
但是我得到一個隱含的轉換警告。自動完成顯示(id)而不是(ImageIdentifier)。我已經三重檢查了我所有的方法簽名,它們都使用枚舉類型。
我是不是正確使用靜態變量還是存在另一個問題?我意識到我可以使用一個單身人士,但我不希望如果可能的話。
我在這裏將枚舉聲明:*更改爲保護無辜
typedef enum
{
ImageIdentifier_Foo = 0,
ImageIdentifier_Bar
} ImageIdentifier;
*真實姓名。
爲什麼_class_'B'在創建'B'的_instance_之前需要引用_instance_的'A'?每個「B」的實例都會有'A'的_same_實例。 – 2012-02-11 20:15:52
'A'包含幾個'B'子類使用的不同圖像。我想讓這些類可以重用,所以每個應用程序可能有不同的圖像名稱。我想避免讓每個子類在每次創建時都發送相同的圖像名稱,只需使用靜態方法發送一次即可。 – TigerCoding 2012-02-11 20:19:58