2010-06-10 106 views
1

我想创建一个游戏,并遇到可能很容易解决的问题。在游戏中保留对象iphone

随着玩家经历游戏,许多物体(车辆)将被添加和移除。

车辆被添加到一个名为currentVehiclesMutableArray的数组中。

我的问题是我不能弄清楚如何保留一辆车,以便它保留在阵列中,直到我完成它。

+0

你还保留的NSArray? – progrmr 2010-06-10 20:38:31

回答

4

NSMutableArray会自动保留您添加到它的任何内容。

实际上,您必须确保在添加对象后释放一个对象,否则会发生内存泄漏。

例如:

Vehicle *vehicle = [[Vehicle alloc] init]; 

[mutableArray addObject:vehicle]; 

[vehicle release]; // you should release it, because it was retained by the array 

// at this point, mutableArray holds your vehicle object, and is retaining it 
+0

好的,谢谢,这是我已经做的,但它不工作。但它可能只是因为一个不同的原因而工作。当我从阵列中删除它时,它是否被释放? – Brodie 2010-06-10 20:37:17

+0

在[NSMutableArray reference](http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableArray)中,它说:“当你添加一个对象到一个数组时,对象会收到一个保留消息,当一个对象从一个可变数组中移除时,它会收到一个释放消息” – progrmr 2010-06-10 20:42:35