2014-07-21 1 views
1

나는 prepareForSegue 방법을 사용하고,아이폰 OS prepareforsegue 던지는는 오류를 던지고,

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if segue.identifier == "roundSegue" { 

     var selectedRound:NSManagedObject = roundList[self.tableView.indexPathForSelectedRow().row] as NSManagedObject 

     let SVC: SetupVC = segue.destinationViewController as SetupVC 

     SVC.course = selectedRound.valueForKey("course") as String 
     SVC.existingRound = selectedRound 
    } 

} 

그러나 xc_bad ... 왜이 오류를 던질 것 인가에 대한 생각?

+0

을 수정해야 속성 관리자를 SEGUE을 클릭하고 열기 사실 그것은 블록 안의 어딘가에 있었다. if 문 내부의 코드를 주석 처리 한 다음 다시 실행하고 충돌이 발생하는지 확인하십시오. 이 방법이 효과가 있으면 실제 충돌 라인을 찾을 때까지 라인별로 주석을 제거하십시오. – daltonclaybrook

답변

2

segue 식별자가 nil 일 수 있습니다. 이 경우 암시 적으로 래핑되지 않은 선택 변수 인 nil을 언랩하려고 시도하는데, 이는 충돌을 일으킬 수 있습니다. 대신 다음을 시도하십시오.

if let identifier = segue.identifier { 
    if identifier == "roundSegue" { 
     // your code here. 
    } 
} 
+0

주 - 이것은 @ 달톤 클레이 브룩의 정답입니다. 그러나,'identifier'는 옵션이 아니므로 컴파일러는 당신이 그렇게하지 못하게 할 것입니다. 나는 이것이 애플의 버그라고 생각한다. 그것은 선택적이어야하며이 체크를 허용해야한다. –

0

STUPID ME! 삭제해야 할 iboutlet이 있습니다. 그거였다. 그래도 모든 도움을 주셔서 감사합니다.

0

스토리 보드 인터페이스에서. set segue identifier

가 seque 식별자를 설정하고 나쁜 액세스 내가 엑스 코드가 충돌이있는 경우에 있던 나에게 말했다 어디 스위프트 년 전에 비슷한 문제를 했어 생각