2017-10-07 2 views
0

저는 포트폴리오를 구축하기 위해 iOS에서 다중 변환 도구를 만들고 있습니다. 그러나 거리 탭은 뷰를로드하지 않습니다. 즉시 충돌이 발생하고 두 가지 오류가 발생합니다.Swift ViewController로드시 충돌이 발생합니다.

계속하려고하면 두 번째 파일이 나타납니다. 아래에는 오류와 내 Swift 클래스가 컨트롤러뿐만 아니라 앱의 모양과도 연결되어 있습니다.

import UIKit 

class DistanceViewController: UIViewController, UITextFieldDelegate{ 
    @IBOutlet var userDistance: UITextField! 
    @IBOutlet var resultLabel: UILabel! 

    var fromKilometerValue: Measurement<UnitLength>?{ 
     didSet{ 
      milesConversion() 
     } 
    } 

    var fromMileValue: Measurement<UnitLength>?{ 
     didSet{ 
      kilometerConversion() 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     milesConversion() 
     kilometerConversion() 
    } 

    //Dont forget to drag a gesture recognizer 
    @IBAction func dismissKeyboard(_sender: UITapGestureRecognizer){ 
     userDistance.resignFirstResponder() 
    } 

    let numberFormatter: NumberFormatter = { 
     let nf = NumberFormatter() 
     nf.numberStyle = .decimal 
     nf.minimumFractionDigits = 1 
     nf.maximumFractionDigits = 1 
     return nf 
    }() 

    func textField(_ userDistance: UITextField, 
        shouldChangeCharactersIn range: NSRange, 
        replacementString string: String) -> Bool { 
     let existingTextHasDecimalSeparator = userDistance.text?.range(of: ".") 
     let replacementTextHasDecimalSeparator = string.range(of: ".") 

     if existingTextHasDecimalSeparator != nil, 
      replacementTextHasDecimalSeparator != nil { 
      return false 
     } else { 
      return true 
     } 
    } 

    var toMileValue: Measurement<UnitLength>?{ 
     if let fromKilometerValue = fromKilometerValue{ 
      return fromKilometerValue.converted(to: .miles) 
     } 
     else{ 
      return nil 
     } 
    } 

    var toKilometerValue: Measurement<UnitLength>?{ 
     if let fromMileValue = fromMileValue{ 
      return fromMileValue.converted(to: .kilometers) 
     } 
     else{ 
      return nil 
     } 
    } 

    func milesConversion(){ 
     if let toMileValue = toMileValue { 
      resultLabel.text = numberFormatter.string(from: NSNumber(value: Double(userDistance.text!)!))! + " km" + " is " + numberFormatter.string(from: NSNumber(value: toMileValue.value))! + " miles" 
     } 
    } 

    func kilometerConversion(){ 
     if let toKilometerValue = toKilometerValue{ 
      resultLabel.text = numberFormatter.string(from: NSNumber(value: Double(userDistance.text!)!))! + " miles" + " is " + numberFormatter.string(from: NSNumber(value: toKilometerValue.value))! + " km" 
     } 
    } 

    @IBAction func convertKilometers(_ sender: Any) { 
     if let input = userDistance.text, let value = Double(input) { 
      fromKilometerValue = Measurement(value: value, unit: .kilometers) 
     } else { 
      fromKilometerValue = nil 
     } 

     if(toMileValue == nil){ 
      resultLabel.text = "Unable to Convert " + userDistance.text! 
     } 
    } 

    @IBAction func convertMiles(_ sender: Any) { 
     if let input = userDistance.text, let value = Double(input) { 
      fromMileValue = Measurement(value: value, unit: .miles) 
     } else { 
      fromMileValue = nil 
     } 

     if(toKilometerValue == nil){ 
      resultLabel.text = "Unable to Convert " + userDistance.text! 
     } 
    } 
} 

클래스와보기

errors

은 내가 무엇을보고에서 제대로 매핑됩니다. 아무 생각 없니?

EDIT : 내가 Main.storyboard에 없었던 오래된 연결이 있는데, 나는 그들을 제거하고보기가 잘로드됩니다!

+0

콘센트 연결을 모두 확인하십시오. 그리고 https://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found-nil-while-unwrapping-an-optional-valu – rmaddy

+0

@rmaddy를 읽어보십시오! 감사! –

답변

0

콘센트 연결을 모두 점검하십시오. 그리고 readoveroverflow.com/questions/32170456/...- rmaddy

+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. - [리뷰에서] (리뷰/저품절 게시물/17554663) – Dmitry

관련 문제