1.retain   是内存技术+1
2.最好需要
3.不需要

解决方案 »

  1.   


     Address * newAddress2=unmi.address; 从结果看,这句话会把引用计数加1 ,而且很可能调用的 autorelease, 为什么会这样?这不是调用 get方法吗
      

  2.   

    1、get方法只是返回一个值,不会对计数器加1
    2、需要重写Unmi 的dealloc方法 释放它的成员变量,否则内存泄露
    3、不需要释放 newAddress2 对象,因为newAddress2 对象并不是通过alloc或者copy创建的,也没有对其retain,记住一条原则:
    “谁alloc,谁release,谁retain谁release”。
    另外,我用xcode打印出来的newAddress2的retainCount是2,并不是3,是不是你的编译器有问题?