2014-04-15 42 views
1

基本上我有一個名爲MyClassXY的類中的五個屬性。在MyClassXY.m中,我有一個nstimer,每0.1秒調用一次,並將這些屬性設置爲任何值,我將這些特性設置爲Main_game_scene viewcontroller類。但是我在Main_Select_level視圖控制器中分配了MyClassXY。解決這個問題的唯一方法是將MyClassXY對象從Main_Select_level傳遞給Main_game_scene視圖控制器,或者有辦法解決這個問題。我不想分配一個全新的MyClassXY對象,因爲它有一大堆其他類都需要與之交互的變量。也許類方法?如何爲兩個類使用相同的屬性?

對不起,我爲新手提問。

+0

沒有真正解決您的問題。是否只有定時器才能將值從一個類複製到另一個類,因爲您不知道該如何去做? – Wain

+0

哦,也許我應該說,但是,即時通訊使用Gamecenter製作多人遊戲。我的意思是將這些結構的成員設置爲屬性的值,然後每0.1秒將結構發送到其他設備。 – user3534757

+0

那麼傳遞實例有什麼問題? – Wain

回答

0

您可以修改您的MyClassXY爲singleton。然後,您可以在程序中的任何位置獲得對它的引用,但它始終是相同的實例。例如,[UIApplication sharedApplication]是一個單例。

+0

如何將數據添加到單身人士?無法在指南中的任何地方找到它。 – user3534757

+0

http://www.galloway.me.uk/tutorials/singleton-classes/ 您使用:YourClass * c = [YourClass sharedInstance]; – Szu

+0

只需將屬性添加到.h文件中的類中,就像其他任何其他類型一樣 – Paulw11

0

這取決於Main_game_scene和Main_Select_level是如何相關的。從第一個到第二個是否有一個繼續?莫代爾還是推?哪一個先到?然後,您可以將對象從源視圖控制器傳遞到目標視圖控制器。 如果您需要爲您的所有應用程序使用MyClassXY類的一個(且僅限一個)實例,請使用Singleton。

0

您當前創建和使用目前遊戲:

ViewController *viewcont = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; 
[view2 presentViewController:viewcont animated:NO completion:nil]; 

通過它管理你的遊戲中心互動類(使用定時器),所有你需要做的是:

ViewController *viewcont = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; 
viewcont.scoreController = self.scoreController; 

[view2 presentViewController:viewcont animated:NO completion:nil]; 

其中scoreControllerViewController上的一個屬性,用於保存對遊戲中心交互控制器的引用,self.scoreController是您之前創建的那個類的實例。

相關問題