2010-09-18 44 views
2

我剛開始學習有一點Java經驗的Objective C,這個網站對於回答我的問題很有幫助,但是我遇到了一個我不能理解的問題。 Theres相當數量被閱讀關於這個話題,但我不能找到我出錯的地方。在對象實例之間共享常規類全局變量 - help!

我閱讀此:

目的C不支持類的數據成員(即,由相同類的所有對象的共享數據),然而,它們可以通過使用靜態改性劑進行仿真。例如,在Employee類的實現文件中聲明靜態int計數變量將導致所有Employee對象共享一個稱爲count的整數變量。

但我似乎已經結束了這個功能沒有嘗試......我不想它!

這種情況是,我有一個UIImageView的類別,我在其中聲明一個全局變量(就在我的@implementation行下面)來計算特定事件並將其用於我的新方法。

@implementation UIImageView (Draggable)  
int touchesCount = 0;  
// methods ... 

一切工作正常,如果我有一個單一的UIImageView。但是,當我創建並添加UIImageView的第二個實例時,這個計數變量將在兩者之間共享,從而產生意外的行爲。

圖也可能是相關的,以顯示我是如何創建的對象:

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
UIImageView *myImageView2 = [[UIImageView alloc] initWithFrame:myImageRect]; 
// ... (create, manipulate and set 2 images to the 2 views) 
[self.view addSubview:myImageView]; 
[self.view addSubview:myImageView2]; 

其他,在那裏我可能是想錯了什麼建議?

謝謝!

編輯:爲了說明我對2個視圖做了些什麼,在這種情況下,自我是一個ViewController。

回答

2

你在找什麼是實例變量,但類別不能添加那些接口Apple

注意,一類不能宣佈該類額外的實例變量;它只包含方法。

您應該使用inheritance代替:

@interface MyView : UIImageView { 
    int touchesCount; 
} 
// ... 
@end 
+0

我已經改變了按你的建議,我的代碼和它現在的工作按預期。謝謝你的幫助。 – Faylen 2010-09-18 15:25:22