我有一个与这段代码有关的问题
NSNumber *lastObject = [self.myStack lastObject];
if(lastObject){
[self.myStack removeLastObject];
}
return [lastObject doubleValue];
我很惊讶lastObject
尽管被删除了,但仍然在记忆中。
这是怎么回事?是lastObject
返回对象的副本吗?
答案 0 :(得分:4)
不,它不是副本,它只是自动释放。它将在不久的将来发布。
编辑:澄清 - 在[self.myStack removeLastObject]
上,对象立即被发送release
,但是您从[self.myStack lastObject]
获得了一个自动释放的指针,因此该数组不是该对象的最后一个所有者。