【发布时间】:2011-11-08 11:48:59
【问题描述】:
NSMutableArray 的 addObject 方法究竟是如何工作的?它是创建一个新实例并将其添加到数组中,还是只是将 SAME 对象的引用添加到数组中?
如果答案是只插入对对象的引用,那么这就引出了我的下一个问题:
假设我在我的一个类中有以下方法('list' 是一个 NSMutableArray),很高兴,这段代码按我想要的方式工作,但我似乎并不完全理解为什么:
-(void)buyItem:(Item *)anItem
{
Item * newItem = [[Item alloc]init];
newItem.name = anItem.name;
newItem.details = anItem.details;
[list addObject:newItem];
[newItem release];
}
所以基本上在调用 [list addObject:newItem] 之后,现在总共会有两个指向同一个对象的引用(newItem,以及 'list' 数组中的另一个)?
但是为什么在这里释放 newItem 对象,并没有清除“列表”NSMutableArray 中的那个呢?它们不是指向同一个对象吗?
【问题讨论】:
标签: objective-c