有二传手的例子很多,我们应该怎么做,例如:不必要地释放
- (void)setFoo:(NSString *)newFoo
{
if (foo != newFoo)
{
[foo release];//??
foo = [newFoo retain];
}
}
我的理解是,我们需要释放上一个值,然后分配新的有保留,这是怎么文档说我们要做,但我不明白我们应该发布什么,如果分配foo = [newFoo retain];会使foo成为newFoo当前保留计数器的新值,如果甚至foo的保留计数器在5之前,它就会变成newFoo的+1,或者我有些想法和理解不正确。为什么我们不能这样做:
- (void)setFoo:(NSString *)newFoo
{
if (foo != newFoo)
{
foo = [newFoo retain];
}
}
哦,10倍,我明白了。事实上,我们需要释放的不是var,而是内存单元 – 2012-02-20 19:35:03