2013-12-19 38 views
1

我剛開始創建一個新的清單應用程序的第一次。當試圖在xcode 5的iphone模擬器上運行iOS應用程序時,保持斷點錯誤

到目前爲止,我已經在main.storyboard中的應用程序的UI中添加了一個Table View對象和Table View Cell對象。

然後我去了我的View Controller頭文件,並確保將超類的類型改爲「UITableViewController」。

然後我去了我的視圖控制器的主要文件,並添加下面的方法:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 1; 
} 

-(UITableViewCell *)tableview:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath 
{ 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"]; 

return cell; 

} 

我不斷收到一個斷點錯誤,無法獲取應用程序在iPhone模擬器上運行。我已經嘗試從頭開始重新創建這個應用程序3次,並嘗試使用不同的模擬器,仍然沒有任何工作。

每當我試圖運行的應用程序,這是在調試控制檯最終輸出:

libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

而且,這裏是我的Xcode的外觀截圖鏈接就像當我嘗試運行程序和得到斷點錯誤:http://oi40.tinypic.com/25im3kn.jpg

我已經在過去多次得到斷點錯誤,但通常可以通過去調試>停用斷點來解決所有問題,但現在對我來說不起作用。

非常感謝任何幫助,謝謝。

PS。此外,以下是調試控制檯日誌中的全部輸出:

2013-12-18 18:25:55.183 Checklists[4910:70b] *** Assertion failure in -[UITableView  _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit_Sim/UIKit- 2903.23/UITableView.m:6246 
2013-12-18 18:25:55.190 Checklists[4910:70b] *** Terminating app due to uncaught exception  'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from  tableView:cellForRowAtIndexPath:' 
*** First throw call stack: 
(
0 CoreFoundation      0x017385e4 __exceptionPreprocess + 180 
1 libobjc.A.dylib      0x014bb8b6 objc_exception_throw + 44 
2 CoreFoundation      0x01738448 +[NSException  raise:format:arguments:] + 136 
3 Foundation       0x0109bfee -[NSAssertionHandler  handleFailureInMethod:object:file:lineNumber:description:] + 116 
4 UIKit        0x003123d5 __53-[UITableView  _configureCellForDisplay:forIndexPath:]_block_invoke + 426 
5 UIKit        0x0028b3ef +[UIView(Animation) performWithoutAnimation:] + 82 
6 UIKit        0x0028b438 +[UIView(Animation) _performWithoutAnimation:] + 40 
7 UIKit        0x00312226 -[UITableView _configureCellForDisplay:forIndexPath:] + 108 
8 UIKit        0x0031863d -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 442 
9 UIKit        0x003186f3 -[UITableView _createPreparedCellForGlobalRow:] + 69 
10 UIKit        0x002fc774 -[UITableView _updateVisibleCellsNow:] + 2378 
11 UIKit        0x0030fe95 -[UITableView layoutSubviews] + 213 
12 UIKit        0x00294267 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
13 libobjc.A.dylib      0x014cd81f -[NSObject performSelector:withObject:] + 70 
14 QuartzCore       0x03b462ea -[CALayer layoutSublayers] + 148 
15 QuartzCore       0x03b3a0d4 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
16 QuartzCore       0x03b46235 -[CALayer layoutIfNeeded] + 160 
17 UIKit        0x0034f613 -[UIViewController window:setupWithInterfaceOrientation:] + 304 
18 UIKit        0x0026e177 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5212 
19 UIKit        0x0026cd16 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82 
20 UIKit        0x0026cbe8 -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 117 
21 UIKit        0x0026cc70 -[UIWindow _setRotatableViewOrientation:duration:force:] + 67 
22 UIKit        0x0026bd0a __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120 
23 UIKit        0x0026bc6c -[UIWindow _updateToInterfaceOrientation:duration:force:] + 400 
24 UIKit        0x0026c9c3 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 870 
25 UIKit        0x0026ffb6 -[UIWindow setDelegate:] + 449 
26 UIKit        0x00341737 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 180 
27 UIKit        0x00265c1c -[UIWindow addRootViewControllerViewIfPossible] + 609 
28 UIKit        0x00265d97 -[UIWindow _setHidden:forced:] + 312 
29 UIKit        0x0026602d -[UIWindow _orderFrontWithoutMakingKey] + 49 
30 UIKit        0x0027089a -[UIWindow makeKeyAndVisible] + 65 
31 UIKit        0x00223cd0 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1851 
32 UIKit        0x002283a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824 
33 UIKit        0x0023c87c -[UIApplication handleEvent:withNewEvent:] + 3447 
34 UIKit        0x0023cde9 -[UIApplication sendEvent:] + 85 
35 UIKit        0x0022a025 _UIApplicationHandleEvent + 736 
36 GraphicsServices     0x036df2f6 _PurpleEventCallback + 776 
37 GraphicsServices     0x036dee01 PurpleEventCallback + 46 
38 CoreFoundation      0x016b3d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53 
39 CoreFoundation      0x016b3a9b __CFRunLoopDoSource1 + 523 
40 CoreFoundation      0x016de77c __CFRunLoopRun + 2156 
41 CoreFoundation      0x016ddac3 CFRunLoopRunSpecific + 467 
42 CoreFoundation      0x016dd8db CFRunLoopRunInMode + 123 
43 UIKit        0x00227add -[UIApplication _run] + 840 
44 UIKit        0x00229d3b UIApplicationMain + 1225 
45 Checklists       0x00001b7d main + 141 
46 libdyld.dylib      0x01d7670d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

PPS。使你的變化後,我的視圖控制器主文件現在看起來是這樣的:

#import "ChecklistsViewController.h" 

@interface ChecklistsViewController() 

@end 

@implementation ChecklistsViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 1; 
} 

-(UITableViewCell *)tableview:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath 
{ 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"]; if(!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:@"ChecklistItem"]; } 

return cell; 
} 


@end 

我仍然得到一個錯誤,現在這是控制檯日誌中顯示:

2013-12-18 18:42:14.609 Checklists[5014:70b] *** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit_Sim/UIKit- 2903.23/UITableView.m:6246 
2013-12-18 18:42:14.614 Checklists[5014:70b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from  tableView:cellForRowAtIndexPath:' 
*** First throw call stack: 
(
0 CoreFoundation      0x017395e4 __exceptionPreprocess + 180 
1 libobjc.A.dylib      0x014bc8b6 objc_exception_throw + 44 
2 CoreFoundation      0x01739448 +[NSException raise:format:arguments:] + 136 
3 Foundation       0x0109cfee -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116 
4 UIKit        0x003133d5 __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 426 
5 UIKit        0x0028c3ef +[UIView(Animation) performWithoutAnimation:] + 82 
6 UIKit        0x0028c438 +[UIView(Animation) _performWithoutAnimation:] + 40 
7 UIKit        0x00313226 -[UITableView _configureCellForDisplay:forIndexPath:] + 108 
8 UIKit        0x0031963d -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 442 
9 UIKit        0x003196f3 -[UITableView _createPreparedCellForGlobalRow:] + 69 
10 UIKit        0x002fd774 -[UITableView _updateVisibleCellsNow:] + 2378 
11 UIKit        0x00310e95 -[UITableView layoutSubviews] + 213 
12 UIKit        0x00295267 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
13 libobjc.A.dylib      0x014ce81f -[NSObject performSelector:withObject:] + 70 
14 QuartzCore       0x03b472ea -[CALayer layoutSublayers] + 148 
15 QuartzCore       0x03b3b0d4 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
16 QuartzCore       0x03b47235 -[CALayer layoutIfNeeded] + 160 
17 UIKit        0x00350613 -[UIViewController window:setupWithInterfaceOrientation:] + 304 
18 UIKit        0x0026f177 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5212 
19 UIKit        0x0026dd16 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82 
20 UIKit        0x0026dbe8 -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 117 
21 UIKit        0x0026dc70 -[UIWindow _setRotatableViewOrientation:duration:force:] + 67 
22 UIKit        0x0026cd0a __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120 
23 UIKit        0x0026cc6c -[UIWindow _updateToInterfaceOrientation:duration:force:] + 400 
24 UIKit        0x0026d9c3 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 870 
25 UIKit        0x00270fb6 -[UIWindow setDelegate:] + 449 
26 UIKit        0x00342737 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 180 
27 UIKit        0x00266c1c -[UIWindow addRootViewControllerViewIfPossible] + 609 
28 UIKit        0x00266d97 -[UIWindow _setHidden:forced:] +  312 
29 UIKit        0x0026702d -[UIWindow _orderFrontWithoutMakingKey] + 49 
30 UIKit        0x0027189a -[UIWindow makeKeyAndVisible] + 65 
31 UIKit        0x00224cd0 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1851 
32 UIKit        0x002293a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824 
33 UIKit        0x0023d87c -[UIApplication  handleEvent:withNewEvent:] + 3447 
34 UIKit        0x0023dde9 -[UIApplication sendEvent:] + 85 
35 UIKit        0x0022b025 _UIApplicationHandleEvent + 736 
36 GraphicsServices     0x036e02f6 _PurpleEventCallback + 776 
37 GraphicsServices     0x036dfe01 PurpleEventCallback + 46 
38 CoreFoundation      0x016b4d65  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53 
39 CoreFoundation      0x016b4a9b __CFRunLoopDoSource1 + 523 
40 CoreFoundation      0x016df77c __CFRunLoopRun + 2156 
41 CoreFoundation      0x016deac3 CFRunLoopRunSpecific + 467 
42 CoreFoundation      0x016de8db CFRunLoopRunInMode + 123 
43 UIKit        0x00228add -[UIApplication _run] + 840 
44 UIKit        0x0022ad3b UIApplicationMain + 1225 
45 Checklists       0x00002aed main + 141 
46 libdyld.dylib      0x01d7770d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 
+0

如果您共享在「以NSException類型的未捕獲異常終止」之前出現的日誌將會很棒! –

+0

Nvinhas我只是用整個日誌更新了我原來的問題。 – user3117509

回答

2

的問題是,代碼dequeueReusableCellWithIdentifier未返回單元格。

  1. 檢查您的XIB的重用標識符細胞設定爲"ChecklistItem"
  2. 如果dequeueReusableCellWithIdentifier回報nil創建一個新的細胞。

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"]; 
    if(!cell) { 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ChecklistItem"]; 
    } 
    

這應該解決您的問題。

+0

我嘗試添加您的解決方案,但仍然收到錯誤消息。我已經更新了你原來提出的代碼更改以及控制檯日誌現在顯示給我的原始問題。 – user3117509

+0

這很奇怪,因爲日誌說方法cellForRowAtIndexPath:正在返回一個零單元格。你可以在該方法的返回中放置一個斷點,看看它是否返回零或不? 如果單元格等於零,它將進入該if和將創建一個新的,所以它不能返回零。 –

+0

我不熟悉使用斷點。我只是做了快速谷歌搜索,並嘗試添加:asm(「陷阱」),並在「返回單元格」之前添加了它。聲明。我應該使用不同的斷點語句嗎?我應該在代碼中的其他位置添加斷點語句嗎? – user3117509

相關問題