我有一個BOOL屬性(不是指針)的視圖控制器,我認爲它會是NO或只是垃圾看起來好像它沒有在viewDidLoad中分配。 BOOL在需要時被分配。當視圖控制器被取消分配(我正在使用arc)並且稍後重新創建時,如果該BOOL的先前實例值爲YES(在VC被釋放之前),那麼新實例BOOL變量的初始值也將爲YES。發現這很奇怪。爲什麼我的原始類型狀態在實例之間被保留?
- 財產申報(非原子,分配)
- 它不是在viewDidLoad中設置,在一個操作方法在其他地方設置
- 在dealloc中不改變
我知道這是奇怪的,同時我已經在viewDidLoad中設置了適當的默認值。
UPDATE
銘記這是與布爾的伊娃(我把它改成一個屬性)和比較發生被做了BOOL被分配之前。我將這種奇怪的行爲歸咎於此。
您的視圖控制器是否被延遲加載,然後由父視圖控制器保持在加載之間? – 2013-03-19 15:09:38
這是重新創建的父級,因此是層次結構的其餘部分。我在dealloc上插入了一個斷點,我肯定它與我檢查內存地址的實例不一樣,此外還有可視化指示:D – BodaciousPie 2013-03-19 15:28:51
奇怪。它是否被聲明爲靜態BOOL? – 2013-03-19 15:46:33