NSMutableArray中的lastObject是否返回该对象的副本?

时间:2012-02-19 23:05:49

标签: objective-c xcode nsmutablearray

我有一个与这段代码有关的问题

NSNumber *lastObject = [self.myStack lastObject];

if(lastObject){
    [self.myStack removeLastObject];
}

return [lastObject doubleValue];

我很惊讶lastObject尽管被删除了,但仍然在记忆中。 这是怎么回事?是lastObject返回对象的副本吗?

1 个答案:

答案 0 :(得分:4)

不,它不是副本,它只是自动释放。它将在不久的将来发布。

编辑:澄清 - 在[self.myStack removeLastObject]上,对象立即被发送release,但是您从[self.myStack lastObject]获得了一个自动释放的指针,因此该数组不是该对象的最后一个所有者。