代码之家  ›  专栏  ›  技术社区  ›  karim

iphone-将指针引用更改为新对象并清除旧对象

  •  1
  • karim  · 技术社区  · 14 年前
    NSMutableArray *myArray = [[NSMutableArray alloc] init];
    MyClass *obj1 = [[MyClass alloc] init];
    [myArray addObject: obj1];
    

    obj1 = nil 
    
    OR
    
    [obj1 release];
    

    //有什么区别?

    obj1 = [[MyClass alloc] init];
    [myArray addObject: obj1];
    

    继续使用obj1和外接程序数组。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Vladimir    14 年前

    向数组中添加对象时,数组存储变量地址,以便可以自由使用临时变量( obj1

    但由于数组保留其元素以进行适当的内存管理,因此需要释放 对象1 [obj1 release]; 线

        2
  •  2
  •   Marcelo Cantos    14 年前

    分配 nil release 以确保旧对象得到正确清理。

    顺便说一下,在代码块a中重用变量名通常是个坏主意。