2013-10-30 39 views
0

我正在開發一款遊戲,裏面有一個名爲StageViewController的類。 我注意到裏面的代碼變得非常非常漫長和沉悶。 在這個類中,我擁有關於手勢,位置,動畫的控制器,並且使用靜態類或單例類來清理此類並不容易。 是否可以使用此StageViewController中的其他視圖控制器來簡化代碼? 示例:如果在我的遊戲中,我應該輸入一個我應該着色的對象,我可以使用另一個視圖控制器(與另一個類)來使StageViewController中的代碼更加簡化嗎?iOS:有一個乾淨的代碼,使用靜態類或單身人士

如果你對我有或鏈接任何建議閱讀可以讓我開心;-)

+0

您還可以查看類別以將代碼拆分爲多個文件 – Zalykr

+0

這些類別是什麼? – CrazyDev

+0

看看這裏:https://developer.apple.com/library/ios/documentation/general/conceptual/DevPedia-CocoaCore/Category.html – Zalykr

回答

1

這通常表明你存儲在視圖控制器模型信息。視圖控制器應該只跟蹤如何顯示信息。您應該將遊戲的實際狀態移動到模型類中。這些模型類繼承自NSObject,它們不是視圖控制器。

在設計良好的模型 - 視圖 - 控制器系統中,您應該能夠在不知道顯示器的外觀的情況下運行整個遊戲。無論該信息如何或是否實際顯示,您的模型應該能夠接受輸入,更新遊戲狀態並提供輸出。這種思想提高了可重用性,同時也降低了視圖控制器的複雜性。

+0

是的,但你認爲最好的解決方案是使用靜態模型類類(NSObject)?例如:用它來檢查一個分數點,或者用它來檢查一個元素是否被拖拽到一個正確的位置上?這是正確的用法嗎?在這些類中可以使用類方法嗎? (我的意思是在聲明中使用「+」的方法) – CrazyDev

+0

NSObject並不意味着它們是「靜態類」。您可以在啓動時創建模型對象並將它們交給視圖控制器,也可以使用單例。如果我們談論的是「太空船周遊」遊戲,您可能會預期會有「運送」對象,並且每個對象都有一個位置。隨着這些地點的變化,觀點也會相應更新。如果有東西毀壞了船隻物體,視圖控制器將刪除相應的視圖。等等 –

+0

好的,謝謝你幫我... – CrazyDev