我正在編寫我的第一個iOS遊戲,並重構我的代碼並移動方法以與基本的MVC原則保持一致後,我意識到我現在需要從UIView子類的多個實例訪問UIColors的靜態NSArray。我的遊戲生成了許多顏色塊(外觀上類似於Tetris),並且是UIView子類的網格。每個塊都有一個int值的屬性,它與「objectAtIndex」一起確定數組中的哪個UIColor用作視圖填充顏色。Obj C - 從另一個不相關的自定義類訪問存儲在一個自定義類中的NSArray成員的最有效方法是什麼?
我意識到如果我把UIColors的靜態數組放在視圖子類中,這將是非常低效的,每個實例都會重複存儲數組。我想把它放在另一個處理許多其他遊戲設置和後勤的課程中 - 基本上只有一個實例(我相信這被稱爲單例)的遊戲的大腦。
所以我要求如何最好的訪問數組,如果我創建它作爲一個屬性在這個單身人士的幫助。請記住,因爲我將創建數百個將訪問這些UIColor值的UIView子類實例,所以訪問效率非常關鍵。也會有興趣聽到任何替代方法,以及每種方式的優缺點。
謝謝你的幫助。
如果你正在創建數百個'UIView',那麼我懷疑數組訪問會比所有的內存分配和初始化以及視圖的gfx更嚴格的瓶頸... – 2014-02-06 22:02:21
你可以用類似的方式訪問類之間的任何東西。它是一個NSArray的事實與你如何引用它無關。如果從多個類(或同一類的多個實例)訪問同一個數組並不意味着該數組已被複制(除非您錯過了這個方法)。只有對數組的引用需要傳遞。 –