2011-01-07 51 views
2

在我的應用程序,你可以在這裏下載:http://ge.tt/2DDqfJaiOS TableView崩潰不知道如何。這裏是應用

我已經開始討論,但這裏iOS TableView crash loading different data

死亡的問題是,當我從後面觀看YouTube視頻的食譜清單,應用程序崩潰...

而當我第二次選擇一個類別時,必須使用不同的數據源加載tableview,它會崩潰。

這是崩潰日誌

程序接收到的信號:「EXC_BAD_ACCESS」。

(gdb) bt 
#0 0x00f0da63 in objc_msgSend() 
#1 0x04b27ca0 in ??() 
#2 0x00002665 in -[RecipesListController viewWillAppear:] (self=0x4b38a00, _cmd=0x6d81a2, animated=1 '\001') at /Users/claudiocanino/Documents/iOS/CottoMangiato/Classes/RecipesListController.m:67 
#3 0x00370c9a in -[UINavigationController _startTransition:fromViewController:toViewController:]() 
#4 0x0036b606 in -[UINavigationController _startDeferredTransitionIfNeeded]() 
#5 0x0037283e in -[UINavigationController pushViewController:transition:forceImmediate:]() 
#6 0x04f49549 in -[UINavigationControllerAccessibility(SafeCategory) pushViewController:transition:forceImmediate:]() 
#7 0x0036b4a0 in -[UINavigationController pushViewController:animated:]() 
#8 0x00003919 in -[CategoryViewController tableView:didSelectRowAtIndexPath:] (self=0x4b27ca0, _cmd=0x6d19e3, tableView=0x500c200, indexPath=0x4b2d650) at /Users/claudiocanino/Documents/iOS/CottoMangiato/Classes/CategoryViewCotroller.m:104 
#9 0x0032a794 in -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:]() 
#10 0x00320d50 in -[UITableView _userSelectRowAtPendingSelectionIndexPath:]() 
#11 0x000337f6 in __NSFireDelayedPerform() 
#12 0x00d8cfe3 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__() 
#13 0x00d8e594 in __CFRunLoopDoTimer() 
#14 0x00ceacc9 in __CFRunLoopRun() 
#15 0x00cea240 in CFRunLoopRunSpecific() 
#16 0x00cea161 in CFRunLoopRunInMode() 
#17 0x016e0268 in GSEventRunModal() 
#18 0x016e032d in GSEventRun() 
#19 0x002c342e in UIApplicationMain() 
#20 0x00001c08 in main (argc=1, argv=0xbfffef58) at /Users/claudiocanino/Documents/iOS/CottoMangiato/main.m:15 

另一個BT日誌:

(gdb) bt 
#0 0x00cd76a1 in __CFBasicHashDeallocate() 
#1 0x00cc2bcb in _CFRelease() 
#2 0x00002dd6 in -[RecipesListController setRecipesArray:] (self=0x6834d50, _cmd=0x4293, _value=0x4e3bc70) at /Users/claudiocanino/Documents/iOS/CottoMangiato/Classes/RecipesListController.m:16 
#3 0x00002665 in -[RecipesListController viewWillAppear:] (self=0x6834d50, _cmd=0x6d81a2, animated=1 '\001') at /Users/claudiocanino/Documents/iOS/CottoMangiato/Classes/RecipesListController.m:67 
#4 0x00370c9a in -[UINavigationController _startTransition:fromViewController:toViewController:]() 
#5 0x0036b606 in -[UINavigationController _startDeferredTransitionIfNeeded]() 
#6 0x0037283e in -[UINavigationController pushViewController:transition:forceImmediate:]() 
#7 0x091ac549 in -[UINavigationControllerAccessibility(SafeCategory) pushViewController:transition:forceImmediate:]() 
#8 0x0036b4a0 in -[UINavigationController pushViewController:animated:]() 
#9 0x00003919 in -[CategoryViewController tableView:didSelectRowAtIndexPath:] (self=0x4b12970, _cmd=0x6d19e3, tableView=0x5014400, indexPath=0x4b2bd00) at /Users/claudiocanino/Documents/iOS/CottoMangiato/Classes/CategoryViewCotroller.m:104 
#10 0x0032a794 in -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:]() 
#11 0x00320d50 in -[UITableView _userSelectRowAtPendingSelectionIndexPath:]() 
#12 0x000337f6 in __NSFireDelayedPerform() 
#13 0x00d8cfe3 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__() 
#14 0x00d8e594 in __CFRunLoopDoTimer() 
#15 0x00ceacc9 in __CFRunLoopRun() 
#16 0x00cea240 in CFRunLoopRunSpecific() 
#17 0x00cea161 in CFRunLoopRunInMode() 
#18 0x016e0268 in GSEventRunModal() 
#19 0x016e032d in GSEventRun() 
#20 0x002c342e in UIApplicationMain() 
#21 0x00001c08 in main (argc=1, argv=0xbfffef58) at /Users/claudiocanino/Documents/iOS/CottoMangiato/main.m:15 

感謝

+0

你可以剛剛添加這些更新爲您的[原始問題](http://stackoverflow.com/questions/4615321/ios-tableview-crash-loading-different-data) – Abizern 2011-01-07 11:51:47

回答

0

問題是你是過度釋放對象。由於您使用的是retain屬性,因此在將新對象分配給屬性時,您不必釋放該對象。舊對象將自動釋放。因此這些線是沒有意義的,將其刪除:

if (self.recipesArray != nil) { 

    // Release the arrays 
    [self.recipesArray release]; 
    [self.recipesNames release]; 
} 

cellForRowAtIndexPathRecipesListController)你釋放rowString。這裏沒有必要這樣做。刪除該行,所有內容都應該正常工作。

+0

這已經解決了我的問題。真的tnx! – jollyr0ger 2011-01-07 13:14:52

2

你可能試圖訪問已經被釋放的對象。搜索「NSZombieEnabled」並閱讀如何調試過度釋放問題。

+0

感謝您的提示,已經啓用了殭屍獲得更多的信息 – jollyr0ger 2011-01-07 13:12:42

0
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path]; 

self.recipesArray = dict; 

[dict release]; 
在RecipesListController.m文件檢查

55線viewwill出現你釋放你從未放棄內存

當我做出 //[self.recipesArray發佈評論]的對象; //[self.recipesNames release]; 然後它崩潰在tableview行檢查它

+0

他們沒用,你是對的。我正在學習,我錯過了爲什麼。 Tnx – jollyr0ger 2011-01-07 13:14:26

相關問題