Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

i get an error when trying to build a tableView in swift for iphone

HI I watch many tutorials to finally create an app for the app store.Recently I got interested by tableViews so I followed many tutorials and I seem to always get an error whereas the people in the tutorial succeed to build their app . When I try to run my app , the building stops and I get an exception in the AppDelegate class on the line where it says "class AppDelegate ..." the exception is "Thread 1 : signal SIGABRT"

and for those interested here is the message in the console .

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'must pass a class of kind UITableViewHeaderFooterView'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000109c80f35 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010b7c4bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000109c80e6d +[NSException raise:format:] + 205
    3   UIKit                               0x000000010a5fb254 -[UITableView registerClass:forHeaderFooterViewReuseIdentifier:] + 247
    4   tableviewtes                        0x0000000109a9cc3c _TFC12tableviewtes14ViewController11viewDidLoadfS0_FT_T_ + 460
    5   tableviewtes                        0x0000000109a9ccd2 _TToFC12tableviewtes14ViewController11viewDidLoadfS0_FT_T_ + 34
    6   UIKit                               0x000000010a631a90 -[UIViewController loadViewIfRequired] + 738
    7   UIKit                               0x000000010a631c8e -[UIViewController view] + 27
    8   UIKit                               0x000000010a550ca9 -[UIWindow addRootViewControllerViewIfPossible] + 58
    9   UIKit                               0x000000010a551041 -[UIWindow _setHidden:forced:] + 247
    10  UIKit                               0x000000010a55d72c -[UIWindow makeKeyAndVisible] + 42
    11  UIKit                               0x000000010a508061 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2628
    12  UIKit                               0x000000010a50ad2c -[UIApplication _runWithMainScene:transitionContext:completion:] + 1350
    13  UIKit                               0x000000010a509bf2 -[UIApplication workspaceDidEndTransaction:] + 179
    14  FrontBoardServices                  0x000000010d3512a3 __31-[FBSSerialQueue performAsync:]_block_invoke + 16
    15  CoreFoundation                      0x0000000109bb653c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
    16  CoreFoundation                      0x0000000109bac285 __CFRunLoopDoBlocks + 341
    17  CoreFoundation                      0x0000000109bac045 __CFRunLoopRun + 2389
    18  CoreFoundation                      0x0000000109bab486 CFRunLoopRunSpecific + 470
    19  UIKit                               0x000000010a509669 -[UIApplication _run] + 413
    20  UIKit                               0x000000010a50c420 UIApplicationMain + 1282
    21  tableviewtes                        0x0000000109a9faee top_level_code + 78
    22  tableviewtes                        0x0000000109a9fb2a main + 42
    23  libdyld.dylib                       0x000000010bf9e145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)  
like image 371
Vassili Imanov Avatar asked Dec 16 '14 21:12

Vassili Imanov


People also ask

Can we use Tableview in SwiftUI?

In this blog post, I'll introduce the collection view Table in SwiftUI and explain how to leverage this view on iOS 16 to build a multiplatform app. SwiftUI provides several collection views that you can use to assemble other views into dynamic groupings with complex, built-in behaviors.

How do I change the Tableview style in Swift?

You can't change the tableview style dinamically, you have to do it in your xib file or storyboard if you have one. If you don't use a storyboard or a xib, and prefer to create the tableview programmatically, specify the style while creating the tableview using the - initWithFrame:style: method.

What is Uitableview in Swift?

A view that presents data using rows in a single column.


1 Answers

I think its a tiny mistake.

Instead of :

tableView.register(UITableView.self, forCellReuseIdentifier: "cell")

You need to use:

tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")

Please note that the first argument in register function should be UITableViewCell NOT UITableView

Happy Coding :)

like image 185
Ehsan Ghasaei Avatar answered Sep 29 '22 12:09

Ehsan Ghasaei