我正在使用二維數組作爲遊戲的地圖格式。地圖的水平長度不變,但垂直長度可以。正因爲如此,我認爲應該將C數組的效率用於實際的數據存儲,併爲容器使用NSMutableArray。但是,我不知道如何去做這件事。甚至可以將一個C數組存儲在一個NSArray中?我嘗試了各種方法,但似乎沒有任何工作。是否可以將一個C數組添加到NSArray?
回答
NSArray只存儲對象。您可以可能定義一個自定義的NSArray子類與一個int數組作爲數據存儲和特殊的方法來存儲整數,然後將它們(即,將整數轉換爲NSNumbers)爲NSArray的普通對象接口 - 儘管這是方式 overly複雜的大多數目的。但是對於普通的NSArray,你被對象卡住了。
查克的答案是正確的,但這也可能是一個非常糟糕的主意。存儲C數組的方法要比使用自定義NSArray子類更簡單,並且要經歷裝箱/拆箱的開銷。 – 2012-01-03 20:50:59
爲了清楚起見,我同意@KevinBallard這通常不是你想要做的事情。我可以想到你可能會遇到的一些情況,但通常不會。我認爲這很清楚,這是一個相當複雜的解決方案,只是爲了移動陣列,但我會編輯答案以使其更清楚。 – Chuck 2012-01-03 20:56:38
不,您只能在NSArray
中存儲對象。你可以嘗試在那裏存儲一個NSMutableData
,它保存支持你的C數組的字節,但這有些尷尬。
您可以使用一些C++ STL容器,如vector。這將具有良好的性能以及根據需要增長/收縮數組的接口。
- 1. 是否可以添加一個枚舉到一個元組?
- 2. 我可以將IBActions添加到NSArray嗎?
- 3. 是否可以添加一些填充到數組中?
- 4. 是否可以將MouseMotionListener添加到BufferedImage?
- 5. 將對象添加到一個的NSArray
- 6. 將nsarray的值添加到另一個
- 7. 將元素添加到一個的NSArray
- 8. 是否可以將兩個IQueryable添加到一起?
- 9. 是否可以將一個onclick監聽器添加到QCheckBox?
- 10. 是否可以在Excel VBA中將數組字典添加到數組中?
- 11. 是否可以將組件添加到UIDatepicker?
- 12. NSArray到C數組
- 13. 如何將返回的NSArray添加到一個的NSArray
- 14. 是否可以添加一些堆棧到一個大堆棧?
- 15. 是否可以知道添加對象的數組(或數組)?
- 16. Python:我如何檢查是否可以添加兩個數組?
- 17. 是否可以在C++中添加兩個函數?
- 18. 是否可以將多個外鍵添加到表
- 19. 是否可以將多個屬性添加到XML文件中?
- 20. 是否可以同時將列添加到多個表中?
- 21. 是否可以將數組傳遞到C++中的向量中
- 22. 是否可以將數據添加到DataTable事件?
- 23. 是否可以將自定義數據添加到HealthKit?
- 24. 是否可以將數據庫元素添加到Google任務?
- 25. 是否可以將自定義元數據添加到SQLite列?
- 26. 是否可以將模板添加到數據類的getter/setter?
- 27. 是否可以將其他列添加到計數查詢
- 28. 將NSMutableString添加到NSArray
- 29. 將NSArray添加到.plist
- 30. 是否可以將兩個頭文件添加到一個swift項目中?
可能會有一些最大長度的數組將會/應該是?我在想,爲什麼不直接使用c數組呢? – andershqst 2012-01-01 21:41:36