請注意,我是而不是使用Interface Builder的。在ARC下創建__weak UIViewController子視圖的簡明代碼
我已經做了我的子視圖__weak
,以便它們在ARC 5上自動歸零,當它們所引用的對象被釋放時。這意味着我不必在viewDidUnload
中手動將它們清零(這似乎是最安全的模式)。
但是因爲自己是弱者,我不能直接將它們分配給我的ivars當我alloc
他們,或ARC立即釋放他們,我所發現的是,像這樣分配給一個臨時強大的本地變量的唯一解決方案:
UIView *strongTmp = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:strongTmp];
weakIVar = strongtmp;
這是醜陋的,其目的不是沒有詳細的評論立即明顯。我想要的東西(更)優雅,如:
[self.view addSubview:weakIVar = [[UIView alloc] initWithFrame:self.view.bounds]];
但是,這產生相同的編譯器警告(該對象將立即分配後公佈)。
有什麼建議嗎?提前致謝。
嘿布拉德/馬克斯,你找到了這個問題的答案?我只是在幾個地方遇到過這種情況,而且確實相當醜陋和煩人。 – SaamJB 2013-01-03 04:57:36