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

即使解除分配,引用也不返回nil

  •  1
  • Emil  · 技术社区  · 14 年前

    我在这里遇到了一个很难对付的人。

    + (void) start; -方法),它被发送到委托。 我需要通过委托选择器向委托人发送一些消息。为了检查代表是否被释放,我试过 if (delegate == nil/NULL)

    我该怎么解决这个问题?(委托被分配给 id )

    我的应用程序就是这样构建的:

    AppDelegate
    > NavController
    >> TableView 
    >>> Post 
    >>>> GetData 
    


    换句话说, !

    2 回复  |  直到 14 年前
        1
  •  3
  •   John Calsbeek    14 年前

    无法检查对象是否已释放。另一个对象可能会出现并占用相同的内存空间,与原始对象变得无法区分。

    具有委托的类的用户负责将委托设置为 nil 当委托对象被释放时。它不能被物体本身探测到。

        2
  •  5
  •   kennytm    14 年前

    释放指针的内容 没有 自动将指针设置为空。你需要明确地做,例如。

    [delegate release];
    delegate = nil;