我在看一个老WWDC的视频,并在其splitViewController例如,他们这样做的委托方法为splitViewController:当使用mutableCopy为NSMutableArray的
NSMutableArray *toolBarItems = [[toolbar items] mutableCopy];
[toolbarItems removeObjectAtIndex:0];
[toolbar setItems: toolbarItems animated YES];
[toolbarItems release];
是否有制作一般的好习惯mutableCopy像这样用于某些方法中的数据?我以前没有见过这样的人,并且作为一名新程序员,不知道何时或为什么我会/应该使用某个东西的副本而不是原来的东西。我想我可以在列表中看到它,它已经以某种方式订购了,也许我会复制它以不同的方式对它进行重新排序。但我不知道这是否是他们的推理,以及是否有其他最佳做法来做到这一点。谢谢!
如果我们想要修改不可变的副本,那么我们也可以创建[NSMutableArray arrayWithArray:]。那么它与mutableCopy有什么不同呢? – MuraliMohan
@MuraliMohan -mutableCopy提供了一个不是自动发布的副本。 + [NSMutableArray arrayWithArray:]提供放置在autorelease池中的副本;即自动释放。 – trudyscousin
好吧然后我会用[[NSMutableArray alloc] initWithArray:]我认为它不是autoreleased。我强烈的问题是=>而不是复制我们可以创建新的对象与现有的数据,并使用它作为复制的对象? – MuraliMohan