【问题标题】:Do I have to release this variable?我必须释放这个变量吗?
【发布时间】:2011-04-05 07:04:31
【问题描述】:
UIViewController *parentController;
for (UIView* next = [self superview]; next; next = next.superview) {
    UIResponder* nextResponder = [next nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        parentController = (UIViewController*)nextResponder;
    }
}

在这段代码中,我必须释放 parentController 吗? 那么,什么时候?

【问题讨论】:

    标签: objective-c release


    【解决方案1】:

    由于您没有取得 parentController 对象的所有权(保留/分配/复制/新),因此您不必释放它。

    【讨论】:

      【解决方案2】:

      你没有释放它,因为你没有增加它的保留计数(newallocretaincopy)。

      【讨论】:

        【解决方案3】:

        没有。你没有取得所有权,所以也不需要释放它。

        【讨论】:

        • 你的代码的目的有点让人头疼。
        • 您似乎正在朝着包含视图控制器的方向努力,打破了正确的 MVC 结构。使用指针到达那里通常更干净。
        猜你喜欢
        • 1970-01-01
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 2011-09-17
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 2016-10-20
        相关资源
        最近更新 更多