Objective c 存储此数据的哪种方法是有效的?

Objective c 存储此数据的哪种方法是有效的?,objective-c,iphone,optimization,programming-languages,Objective C,Iphone,Optimization,Programming Languages,我正在写一个游戏,需要一张地图,我想储存地图。我能想到的第一件事是使用2D数组。但问题是我应该在2D数组中存储什么数据。玩家可以点击不同的位置,产生不同的反应。所以,我想用对象存储一个2D数组,当玩家单击某个位置时,我在数组中找到它,并使用该数组中的对象执行cmd。但我担心存储大量对象可能会占用大量内存。因此,我认为只存储char/int。但这对我来说似乎还不够。我想这样存储数据: { Type:1 Color:Green } 无论颜色是什么,如果它们都是类型1,它们在逻辑上有相同的反应,但视

我正在写一个游戏,需要一张地图,我想储存地图。我能想到的第一件事是使用2D数组。但问题是我应该在2D数组中存储什么数据。玩家可以点击不同的位置,产生不同的反应。所以,我想用对象存储一个2D数组,当玩家单击某个位置时,我在数组中找到它,并使用该数组中的对象执行cmd。但我担心存储大量对象可能会占用大量内存。因此,我认为只存储char/int。但这对我来说似乎还不够。我想这样存储数据:

{
Type:1
Color:Green
}
无论颜色是什么,如果它们都是类型1,它们在逻辑上有相同的反应,但视觉效果是基于颜色的。因此,使用prue char/int数据存储并不容易,除非我做了如下操作:

 1-5 --> all type 1. 1=color green , 
 2=color red, 3 = color yellow.... ...
 6-10 --> all type 2. 2 = color green,
 2 = color red ... ...

那么,你对如何减少ram的使用有什么想法,而且对我来说也很容易阅读。。。thx

继续在数组中存储一组对象,但有以下两个改进:

存储指向对象的指针,而不是对象本身。目标C可以自动为您处理此问题;我不知道

请记住,指向单个对象的指针可以出现在数组中的多个位置。所有共享相同颜色和行为的正方形都可以共享一个对象


如果您计算了阵列的大小和不同方块的数量,这样我们就可以确切地知道您所说的RAM的数量,这也会有所帮助。

您是说您可能希望通过合并相同的数据点来优化存储空间吗?对我来说,在数据更改时合并和取消合并所需的额外CPU工作不值得节省RAM。当然,这取决于你是如何做到的,但如果你想获得合适的响应时间,我认为这是不合理的。这大约是10*10个数组,但你可能知道,这不仅消耗了我的记忆,而且图像、效果、等等。。。如果只有10x10块,我就不会担心内存了。是的,当您在Objective-C中的数组中存储一个对象时,您只需存储指针,数组就会保留该对象。这就是说,我可能仍然会考虑仔细使用一个普通的C 2D数组和存储结构,因为它更具有可扩展性。但如果现在感觉很痛苦,那就用最简单的解决方法。100个对象不会引起任何问题。