我有一个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处的滑块。如何进行此操作? 感谢。答案 0 :(得分:3)
首先,您已经在堆栈中创建了所有UISliders,并在每个堆栈中创建。
因为您的坐标相同CGRect(0,0,200,40)];
所以你只会看到其中一个。
现在,如果你想删除其中任何一个,只需使用
[myArray removeObjectAtIndex:5];
编辑:
Jed's answer的摘录。
与NSArray一样,NSMutableArray的实例维护强引用 他们的内容。如果不使用垃圾回收,则将对象添加到数组时,该对象 收到保留消息。从可变对象中删除对象时 数组,它接收一个释放消息。如果没有进一步 对该对象的引用,这意味着该对象被释放。 如果您的程序保留对此类对象的引用,则为引用 除非您之前向对象发送保留消息,否则将变为无效 它已从数组中删除。