2014-12-16 2 views
6

안녕하세요. 저는 많은 자습서를보고 앱 스토어 용 앱을 만들었습니다. 최근에 많은 튜토리얼을 따라 가면서 tableViews에 관심이 많았습니다. 오류가있는 반면 자습서에있는 사람들은 앱을 개발하는 데 성공합니다. 내 응용 프로그램을 실행하려고하면 건물이 멈추고 "클래스 AppDelegate ..."라는 줄의 AppDelegate 클래스에서 예외가 발생합니다. 예외는 "스레드 1 : 신호 SIGABRT"아이폰 용으로 tableView를 만들려고 할 때 오류가 발생합니다.

여기에 관심있는 사람은 콘솔에있는 메시지입니다.

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) 
+0

실행 응용 프로그램입니다 코드에서 예외가 발생합니다. – JAL

+1

문제가 무엇인지 정확히 설명하는 콘솔 메시지가 나타납니다. –

+2

오류 메시지가 꽤 명확합니다 -'registerClass : forHeaderFooterViewReuseIdentifier : '에 전달한 클래스가'UITableViewHeaderFooterView'의 하위 클래스가 아닙니다 -이 메소드를 호출하는 곳과 전달할 클래스의 정의를 확인하십시오 – Paulw11

답변

-1

나는이 문제로 고통 받았다.

Paulw11이 말했듯이 문제는 등록 클래스 메소드 호출입니다.

나는 자습서를 새로 고칠 수있는 풀을 다음과 같이 작업 테이블 뷰 가지고 :

내가 함께

var tableView = tableViewController.tableView 

    tableView.registerClass(UITableViewController.self, forHeaderFooterViewReuseIdentifier: cellIdentifier) 

교체를 :

var refreshControl = UIRefreshControl() 
    refreshControl.addTarget(self, action: Selector("sortArray"), forControlEvents: UIControlEvents.ValueChanged) 
    self.refreshControl = refreshControl 

... 

func sortArray() { 
    ... 
} 

새로 고침 풀을 활성화하고 내 코드를 허용 달리기.

28

은 아마 당신이 사용하고자하는 기능은

tableView.registerClass(UITableViewController.self, forCellReuseIdentifier: cellIdentifier) 

대신 그것 뿐이다

tableView.registerClass(UITableViewController.self, forHeaderFooterViewReuseIdentifier: cellIdentifier) 

희망 ... "모든 예외"브레이크 포인트와 우리에게 보여

+0

SUPERMAN과 같은 오류 잡기 .... 하루를 멋지게 만들었습니다. :) – Tuhin

관련 문제