2010-01-20 55 views
0

一個類文件我是新來的iPhone開發環境,所以,請溫柔:調用從另一個

目前寫一個iPhone遊戲應用程序,也將有一個高的分數視圖。想要使這個視圖是獨立的,我可以從另一個類(.m文件)調用它。

問題是,你如何調用另一個類文件?我知道我需要從該文件中包含標題,但是如何從該類中調用「函數/消息」...類似於更新高分?

我希望這可以發送。預先感謝任何和所有幫助。

地理...

回答

0

如果你的函數是靜態的,這樣稱呼它:

[ClassName theFunction:parameter];

如果你的函數是類的成員,然後創建類的實例和調用這樣的功能:

ClassName obj = [[ClassName alloc] init]; 
[obj theFunction:parameter]; 
+0

您通常不希望創建視圖的所有實例。 – Chuck 2010-01-20 19:49:31

0

/什麼不要把它想成調用函數/方法/步驟。把它想象成一個對象與另一個對話。他們需要做什麼?您需要參考您想要交談的對象。

通常情況下,您需要創建一個實例變量,將其分配給您感興趣的對象。如果兩個對象一起處於筆尖,您可以在Interface Builder中繪製它們之間的連接。否則,您需要構造代碼,以便他們可以找到彼此(例如,讓筆尖的所有者參考任何其他需要與視圖交談的對象)。

您可能想嘗試通過其中一個教程(例如,在Apple的開發人員網站上)來了解它是如何工作的。

0

爲此的首選技術將是委派。以便您的主視圖將評分任務委託給您的HighScore視圖。

@protocol myDelegate; 


@interface myClass : UIView { 
id <myDelegate> delegate; 
} 

@property (nonatomic, assign) id <myDelegate> delegate; 


@end 

@protocol myDelegate 
- (void)myMethod //Method to be implemented by your High Score View 

要在您的高分查看實現此協議做:

@interface HighScore : UIview <myDelegate> 

將在HighScore.m實現該方法的MyMethod:

- (void)myMethod { 
//update Score etc... 
} 

從其他調用方法查看do:

myHighScoreView.delegate = self // self is your other view 
[delegate myMethod] // calls the method in the other view. 

我希望這很清楚。

-Oscar