[swift error] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier reuseIdentifier

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier reuseIdentifier - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

    *** First throw call stack:

    (

    0   CoreFoundation                      0x00000001804b70ec __exceptionPreprocess + 172

    1   libobjc.A.dylib                     0x000000018008ede8 objc_exception_throw + 72

    2   Foundation                          0x0000000180e73aa8 _userInfoForFileAndLine + 0

    3   UIKitCore                           0x0000000185ce1d94 -[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:] + 748

    4   UIKitCore                           0x0000000185ce1a84 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 68

    5   Table.debug.dylib                   0x0000000103691918 $s5Table0A14ViewControllerC05tableB0_12cellForRowAtSo07UITableB4CellCSo0iB0C_10Foundation9IndexPathVtF + 264

    6   Table.debug.dylib                   0x0000000103691d8c $s5Table0A14ViewControllerC05tableB0_12cellForRowAtSo07UITableB4CellCSo0iB0C_10Foundation9IndexPathVtFTo + 136

    7   UIKitCore                           0x0000000185cf6c6c -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 1380

    8   UIKitCore                           0x0000000185cc93e0 -[UITableView _updateVisibleCellsForRanges:createIfNecessary:] + 548

    9   UIKitCore                           0x0000000185cc99e8 -[UITableView _updateVisibleCellsNow:] + 1108

    10  UIKitCore                           0x0000000185ce3d30 -[UITableView layoutSubviews] + 144

    11  UIKitCore                           0x000000018601c0c4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2404

    12  QuartzCore                          0x000000018b06ceb0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 432

    13  QuartzCore                          0x000000018b077c34 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 124

    14  QuartzCore                          0x000000018afacc58 _ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd + 464

    15  QuartzCore                          0x000000018afdb468 _ZN2CA11Transaction6commitEv + 652

    16  UIKitCore                           0x0000000185abb7b4 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 32

    17  CoreFoundation                      0x000000018041b0ec __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20

    18  CoreFoundation                      0x000000018041a824 __CFRunLoopDoBlocks + 352

    19  CoreFoundation                      0x00000001804150c8 __CFRunLoopRun + 812

    20  CoreFoundation                      0x0000000180414960 CFRunLoopRunSpecific + 536

    21  GraphicsServices                    0x0000000190183b10 GSEventRunModal + 160

    22  UIKitCore                           0x0000000185aa2b40 -[UIApplication _run] + 796

    23  UIKitCore                           0x0000000185aa6d38 UIApplicationMain + 124

    24  UIKitCore                           0x0000000184e9a184 block_destroy_helper.22 + 9660

    25  Table.debug.dylib                   0x0000000103690940 $sSo21UIApplicationDelegateP5UIKitE4mainyyFZ + 120

    26  Table.debug.dylib                   0x00000001036908b8 $s5Table11AppDelegateC5$mainyyFZ + 44

    27  Table.debug.dylib                   0x00000001036909bc __debug_main_executable_dylib_entry_point + 28

    28  dyld                                0x0000000102c05410 start_sim + 20

    29  ???                                 0x0000000102d9e154 0x0 + 4342800724

    30  ???                                 0xdc7a000000000000 0x0 + 15887010635502845952

    )

    libc++abi: terminating due to uncaught exception of type NSException
    Assertion failure in -[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:], UITableView.m:10099

    결론적으로는 identifier 가 잘못되었다는 뜻! 

     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
    
            cell.textLabel?.text = items[(indexPath as NSIndexPath).row]
            //셀의 text lable 앞에 선언한 items를 대입
            cell.imageView?.image = UIImage(named: itemsImageFile[(indexPath as NSIndexPath).row])
    
            return cell
        }

    여기서 주석처리로 기본 제공한 함수를 사용했는데, 그러다보니 withIdentifier 이름이 통일되지 않아 생긴 오류다. 

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath)
    
            cell.textLabel?.text = items[(indexPath as NSIndexPath).row]
            //셀의 text lable 앞에 선언한 items를 대입
            cell.imageView?.image = UIImage(named: itemsImageFile[(indexPath as NSIndexPath).row])
    
            return cell
        }

     

    이렇게 변경해주면 해결.

     

    댓글