2014-10-08 4 views
-1

Xcode6.01 및 Swift에서 Master-Detail iOS 프로젝트를 가지고 놀고 있습니다. 신속한 사전 개체를 테이블의 Swift 데이터 소스 배열에 추가하는 간단한 데이터 입력 화면이 있습니다.Swift iOS - 사전 객체를 상세 뷰로 전달

데이터 입력 및 테이블보기가 정상적으로 작동합니다. 배열에서 사전 객체를 추출하고 해당 dict 객체를 상세 뷰로 전달하려고하면 셀을 두드리는 경우이 문제가 발생합니다.

상세보기의 configureView() 함수가 예외를 발생시키고 있습니다. 여기 코드는 : 그것은 println 메소드() 문은 strName 변수에 아무 문제가없는 이상한 것 같다 출력 패널에서 선택되는 그것의 언급이없는

func configureView() { 

if let dictObject:Dictionary = detailItem as? Dictionary<String,String> { 

    if var strName = dictObject["name"] { 

    // prints fine: 
    println(strName) 

    // fatal error 
    self.detailDescriptionLabel.text = strName 

    // debug output: 
    // prints the string in strName (no mention of optional) 
    // assigning to label: 
    // fatal error: unexpectedly found nil while unwrapping an Optional value 

    } 

} 

} 

. 레이블에 문자열을 지정하려고하면 즉시 충돌합니다.

+0

오류가 'self.detailDescriptionLabel'과 관련이 있습니까? 선택 사항 일 수 있습니까? – zisoft

답변

0

답을 찾았습니다. nil 인 사전 객체는 아니지만 뷰의 레이블입니다!

는 IF LET는이 같은 작품 레이블에 대한 구성과 코드를 조정 한 후이 필요한 이유

func configureView() { 

if let dictObject:Dictionary = detailItem as? Dictionary<String,String> { 

    if let dLabel = detailDescriptionLabel { 

    dLabel.text = dictObject["name"] 

    } 

    if let eLabel = emailLabel { 

    eLabel.text = dictObject["email"] 
    } 

} 
} 

그래도 난 인정해야한다, 나는 모른다. 나는 스토리 보드가 레이블을 초기화 할 것이라고 생각했습니다. 문제의 라벨은 일반 IBOutlets입니다 :

@IBOutlet weak var detailDescriptionLabel: UILabel! 

@IBOutlet weak var emailLabel: UILabel! 
관련 문제