2014-07-21 1 views
4

베타 4로 업그레이드하기 전에 제 코드를 잘 컴파일했지만 IBOutlets로 변경 한 것 같습니다.Swift 결과의 IBOutlet을 '()'로 구성 할 수 없습니다.

오래된 구문이었다

@IBOutlet var tableView: UITableView 

새로운 구문은 다음과 같습니다

@IBOutlet weak var tableView: UITableView! 

이 내가 클래스 파일 내 XIB 파일에서 드래그 Ctrl 키 때 엑스 코드에 의해 생성 된 기본 코드입니다.

그러나이 새로운 구문을 사용하면 클래스의 인스턴스를 구성 할 수 없습니다. 다음 예를 보자

TestViewController is not constructible with()

올바른 방법의 새로운 기능 : 내가하려고하면 다음

class TestViewController: UIViewController { 
    @IBOutlet weak var tableView: UITableView! 
} 

을 나는 오류가 발생

var controller = TestViewController(nibName: nil, bundle: nil) 

또는

var controller = TestViewController() 

중 그럼 내 컨트롤러의 인스턴스를 만드시겠습니까? 현재 나를 위해 일하는 유일한 방법은 콘센트를 선택 사항으로 지정하는 것입니다.하지만 그렇게하지는 않을 것입니다.

init() 
{ 
    super.init(nibName: nil, bundle: nil) 
} 

나는 그 이유를 잘 모르겠어요 :

답변

0

이 솔루션은 뷰 컨트롤러의 init 메소드를 구현하는 것 같다.

+0

런타임 오류가 발생합니다. "치명적인 오류 : unimplemented initializer '초기화 (coder :)'클래스 사용" – danielbh

1

시도해 볼 수 있습니까?

@IBOutlet var tableView: UITableView? 

나는 대답이 아니라는 것을 알고 있지만 그 이후에는 오류가 발생합니다.

관련 문제