作者freedom76912 (KHAKI)
看板MacDev
標題Re: [問題] iPhone: navigation template
時間Sat May 28 12:19:15 2011
※ 引述《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