0

我有一个 NSMutableArray。

我创建了一个 UIControl(比如 UISlider)并在 for 循环中将它添加到这个数组中。

for (int i=0; i<totalSlider; i++) {

UISlider *tmpSlider = [[UISlider alloc] initWithRect:CGRect(0,0,200,40)];

[myArray addObject: tmpSlider];

}

这工作正常。我可以通过

UISlider *tmpSlider = [myArray objectAtIndex:j];

但是如何在保留该数组中剩余的滑块的同时单独删除和释放这些对象?

例如,这个数组中有 10 个滑块。所以我想删除索引 5 处的滑块。如何去做呢?谢谢。

4

1 回答 1

3

首先,您已经在堆栈中创建了所有 UISlider,位于每个 UISlider 之上。

因为你的坐标是一样的CGRect(0,0,200,40)];

所以你只会看到其中之一。

现在,如果您想删除其中任何一个,只需使用

[myArray removeObjectAtIndex:5];

编辑:

杰德回答的摘录。

Like NSArray, instances of NSMutableArray maintain strong references to their contents. If you do not use garbage collection, when you add an object to an array, the object receives a retain message. When an object is removed from a mutable array, it receives a release message. If there are no further references to the object, this means that the object is deallocated. If your program keeps a reference to such an object, the reference will become invalid unless you send the object a retain message before it’s removed from the array.

于 2013-03-30T10:11:24.997 回答