2011-04-05 125 views
0
UIViewController *parentController; 
for (UIView* next = [self superview]; next; next = next.superview) { 
    UIResponder* nextResponder = [next nextResponder]; 
    if ([nextResponder isKindOfClass:[UIViewController class]]) { 
     parentController = (UIViewController*)nextResponder; 
    } 
} 

在這段代碼中,我必須發佈parentController嗎? 那麼,什麼時候?我必須釋放這個變量嗎?

回答

1

因爲您沒有獲取parentController對象的所有權(保留/ alloc/copy/new),所以您不必釋放它。

0

不,您沒有取得所有權,所以也不需要發佈它。

+0

雖然你的代碼的目的是有點頭部劃痕。 – 2011-04-05 07:09:16

+0

你爲什麼認爲這是? – 2011-04-05 07:13:08

+0

你似乎正在朝着一個包含視圖控制器打破正確的MVC結構工作。使用指針到達那裏通常更清潔。 – 2011-04-05 09:09:08

1

你沒有發佈它,因爲你沒有增加它的保留數(通過new,alloc,retaincopy)。

+1

或「保留」.... – 2011-04-05 09:07:04

相關問題