代码之家  ›  专栏  ›  技术社区  ›  Andrew Arrow

在将objective-c retain类变量设置为新对象时,是否必须调用release?

  •  0
  • Andrew Arrow  · 技术社区  · 15 年前

    说我有:

    @属性(非原子,retain)nsstring*foo;

    在某个班级。

    我称之为:

    myclass.foo = [NSString stringWithString:@"string1"];
    myclass.foo = [NSString stringWithString:@"string2"];
    

    在将其设置为“string2”以避免内存泄漏之前,我应该调用[myclass.foo release]吗?

    或者没有任何东西指向第一个“string1”对象就足够了?

    在dealloc方法中,将调用[foo release]。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Georg Fritzsche    15 年前

    Apple Docs 声明的属性 :

    保持
    指定分配时应在对象上调用retain。(默认为“指定”。)
    前一个值将发送一条释放消息。

    推荐文章