SIGABRT因此代码收到了......为什么?

时间:2011-08-28 17:56:44

标签: iphone cocoa-touch tableview sigabrt

我正在尝试将标签栏控制器,导航控制器和tableview实现到我正在处理的应用程序中,但每次我尝试运行它时都会收到SIGABRT错误而我不知道为什么而且它是相当的让我困惑。下面是控制台引用的代码(我相信):

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}

    // Set up the cell...
NSString *cellValue = [listOfCoffees objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

return cell;

}

...以下是控制台:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x6a17c00'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00dca5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00f1e313 objc_exception_throw + 44
    2   CoreFoundation                      0x00dcc0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00d3b966 ___forwarding___ + 966
    4   CoreFoundation                      0x00d3b522 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x00091b98 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 634
    6   UIKit                               0x000874cc -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75
    7   UIKit                               0x0009c8cc -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1561
    8   UIKit                               0x0009490c -[UITableView layoutSubviews] + 242
    9   QuartzCore                          0x016b4a5a -[CALayer layoutSublayers] + 181
    10  QuartzCore                          0x016b6ddc CALayerLayoutIfNeeded + 220
    11  QuartzCore                          0x0165c0b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
    12  QuartzCore                          0x0165d294 _ZN2CA11Transaction6commitEv + 292
    13  QuartzCore                          0x0165d46d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
    14  CoreFoundation                      0x00dab89b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
    15  CoreFoundation                      0x00d406e7 __CFRunLoopDoObservers + 295
    16  CoreFoundation                      0x00d091d7 __CFRunLoopRun + 1575
    17  CoreFoundation                      0x00d08840 CFRunLoopRunSpecific + 208
    18  CoreFoundation                      0x00d08761 CFRunLoopRunInMode + 97
    19  GraphicsServices                    0x010021c4 GSEventRunModal + 217
    20  GraphicsServices                    0x01002289 GSEventRun + 115
    21  UIKit                               0x0002ac93 UIApplicationMain + 1160
    22  Affogato                            0x00002259 main + 121
    23  Affogato                            0x000021d5 start + 53
    24  ???                                 0x00000001 0x0 + 1
)
terminate called throwing an exception

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

我很确定实际问题是代码中的其他地方,我猜你会使用一些字符串变量(可能是selectedCoffee?)来代替tableView的委托。

答案 1 :(得分:1)

错误在tableview委托/ datasource中。 tableview调用CellForRowAtIndexPath来查询它的UITableViewCell对象。检查您的委托/数据源连接。

答案 2 :(得分:0)

设置断点并查看应用程序崩溃的位置。然后我们可以提供更多帮助。