【发布时间】:2012-12-31 13:56:50
【问题描述】:
可能重复:
Does lastObject in NSMutableArray return a copy of the object?
我正在学习关于 iOS 开发的斯坦福课程,但我有疑问。 问题是我有一个带有“操作数”(NSNumbers)的数组(operandStack),我想要一个弹出最后一个元素然后从数组中删除它的函数。这就是教程所说的(并且有效):
- (double)popOperand
{
NSNumber *operand = [self.operandStack lastObject];
if(operand) [self.operandStack removeLastObject];
return [operand doubleValue];
}
我的问题是:如果使用 NSNumber *操作数我们只是“指向”最后一个对象,并且在下一行中我们删除了最后一个对象,那么我们怎么可能返回它?我的意思是,如果我们删除最后一个对象并且操作数只是指向那个对象,那么操作数应该不指向任何东西,所以我不明白我们怎么可能返回操作数...... 如果操作数是数组的最后一个对象的副本,我会理解代码,但事实并非如此......
对不起我的英语:S 我希望我说清楚了。
谢谢,
卡洛斯
【问题讨论】:
-
您对这个问题有何猜测?某种零?
-
是的...我只是不明白为什么会这样!如果操作数指向一个被移除的对象,操作数应该是 nil 什么的,所以返回operand.doubleValue 应该什么都没有...
标签: iphone objective-c ios