看板 MacDev 關於我們 聯絡資訊
※ 引述《freedom76912 (KHAKI)》之銘言: : 第四章是在教navigation template : 我現在已經建好rootview還有一個detailview : 也寫了pushViewController : 現在在simulator上 已經可以從rootview的table點選 並進入detailview : 進入detailview後 上方的navigation bar也多了個箭頭 可以回到rootview : 但是 回到rootview後大約兩秒吧 : 程式就被關閉(simulator回到iPhone的桌面) 我查到的error message是 『calayer release message sent to deallocated instance』 好像是某個東西被over release了 我現在的解決方式如下: 1.在RootViewController.m中 pushViewController:XXXdetailcontroller之後 把[XXXdetailcontroller release]這一行註解掉 == DrinkDetailViewController *drinkDetailViewController = [[DrinkDetailViewController alloc] initWithNibName:@"DrinkDetailViewController" bundle:nil]; drinkDetailViewController.drink=[self.drinks objectAtIndex:indexPath.row]; [self.navigationController pushViewController:drinkDetailViewController animated:YES]; // [drinkDetailViewController release]; == 其他都是navigation template的code 可是感覺這樣很治標不治本= =" 而且這樣子放到實機上會不會爆炸啊..... 煩請各位先進協助 感謝<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.41.53 ※ 編輯: freedom76912 來自: 140.112.41.53 (05/28 14:29)
level39:貼完整的程式碼可能會比較好回答你的問題 05/28 14:56
leondemon:試試clean和analyze你的project 05/28 16:52
※ 編輯: freedom76912 來自: 140.112.41.53 (05/28 19:28)
aecho:我覺得這時候要招喚zombie.... NSZombieEnabled 05/28 19:34
aecho:如果是overreleased的話… 05/28 19:34
level39:為什麼不在dealloc內release就好?你還在使用drinkview阿 05/28 20:02
freedom76912:是因為push進去 所以可以release嗎? 05/28 22:33
offname:Xcode 4 可以用 Instrument 找 Zombie 05/28 22:45
JmeHsieh:直覺是你的detailViewController dealloc時多release了 05/29 09:28
JmeHsieh:所以修改rootViewController裡的code很有可能方向錯了 05/29 09:29
freedom76912:我的detailVC.m裡面只有dealloc掉synthesize的東西 05/29 13:37
freedom76912:還有[super dealloc]而以 05/29 13:37