****更新****斯威夫特3:計算字段錯誤
最新的傳奇讓我仍然困惑。建議我按照數學計算對代碼進行排序。然而,我仍然像以前一樣發生運行錯誤。請參閱附件..
@IBAction func Calculate(_ sender: AnyObject) {
let firstValue = Double(ZFWinput.text!)
let secondValue = Double(TotalFuelinput.text!)
let thirdValue = Double(TripFuelinput.text!)
let TFO000 = Double(secondValue!)
let TFO004 = Double(secondValue! * 1.004)
let TFO006 = Double(secondValue! * 1.006)
let TFO007 = Double(secondValue! * 1.007)
let TFO010 = Double(secondValue! * 1.01)
let TFO011 = Double(secondValue! * 1.011)
let TFO012 = Double(secondValue! * 1.012)
let TripF000 = Double(thirdValue!)
let TripF004 = Double(thirdValue! * 1.004)
let TripF006 = Double(thirdValue! * 1.006)
let TripF007 = Double(thirdValue! * 1.007)
let TripF010 = Double(thirdValue! * 1.10)
let TripF011 = Double(thirdValue! * 1.11)
let TripF012 = Double (thirdValue! * 1.12)
// *Self Reminder* Calculation for Total Fuel Adjustment with various TDP Loaded
if mainbutton.isOn && fwdbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO012)"
}
else if fwdbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO012)"
}
else if mainbutton.isOn && fwdbutton.isOn {
TotalFuelOutput2.text = "\(TFO011)"
}
else if mainbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO010)"
}
else if aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO006)"
}
else if fwdbutton.isOn {
TotalFuelOutput2.text = "\(TFO007)"
}
else if mainbutton.isOn {
TotalFuelOutput2.text = "\(TFO004)"
}
else {TotalFuelOutput2.text = "\(TFO000)"}
// *Self Reminder* Calculation for Trip Fuel Adjust with various TDP Loaded
if mainbutton.isOn && fwdbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF012)"
}
else if fwdbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF012)"
}
else if mainbutton.isOn && fwdbutton.isOn {
TripFuelOutput2.text = "\(TripF011)"
}
else if mainbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF010)"
}
else if aftbutton.isOn {
TripFuelOutput2.text = "\(TripF006)"
}
else if fwdbutton.isOn {
TripFuelOutput2.text = "\(TripF007)"
}
else if mainbutton.isOn {
TripFuelOutput2.text = "\(TripF004)"
}
else {TripFuelOutput2.text = "\(TripF000)"}
//----
let fourthValue = Double(TotalFuelOutput2.text!)
let fifthValue = Double(TripFuelOutput2.text!)
let RampWeight1 = Double(firstValue! + secondValue!)
let TOW1 = Double(RampWeight1 - 1)
let LMass1 = (TOW1 - thirdValue!)
let RampWeight2 = Double(firstValue! + fourthValue!)
let TOW2 = Double(RampWeight2 - 1)
let LMass2 = (TOW2 - fifthValue!)
// *Self Reminder* Calculation for center figuers with no TDP adjustments
RampOutput1.text = "\(RampWeight1)"
TOWOutput1.text = "\(TOW1)"
LandOutput1.text = "\(LMass1)"
// *Self Reminder* Calculation for right hand side figures using new TotalFuelOutput2 & TripFuelOutput2
RampOutput2.text = "\(RampWeight2)"
TOWOutput2.text = "\(TOW2)"
LandOutput2.text = "\(LMass2)"
}
我運行程序並檢查輸入。前三個是正確的,然後在按照上面的順序運行計算之前,它會跳到第四個值旁邊。我附上了下面的截圖。
代碼中的運行時錯誤也低於用正確的結果TFO012。 Here
fourthValue should = TFO012值101.2,但在列表中它的2.16095795579922694E-314。它從哪裏收到這個號碼?
再次抱歉給你所有的問題。你已經對我有巨大的幫助,如果認真感謝!
@Sam男,這是一個完整的視圖控制器代碼
//
// ViewController.swift
// TDP Calculator
//
// Created by Ryan Harris on 24/09/2016.
// Copyright © 2016 Harris. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet var mainbutton: UISwitch!
@IBOutlet var fwdbutton: UISwitch!
@IBOutlet var aftbutton: UISwitch!
@IBOutlet var maindeckimage: UIImageView!
@IBOutlet var fwdholdimage: UIImageView!
@IBOutlet var aftholdimage: UIImageView!
@IBOutlet var ZFWinput: UITextField!
@IBOutlet var TotalFuelinput: UITextField!
@IBOutlet var TripFuelinput: UITextField!
@IBOutlet var RampOutput1: UILabel!
@IBOutlet var TOWOutput1: UILabel!
@IBOutlet var LandOutput1: UILabel!
@IBOutlet var Calculate: UIButton!
@IBOutlet var ZFWOutput2: UILabel!
@IBOutlet var TotalFuelOutput2: UILabel!
@IBOutlet var RampOutput2: UILabel!
@IBOutlet var TOWOutput2: UILabel!
@IBOutlet var TripFuelOutput2: UILabel!
@IBOutlet var LandOutput2: UILabel!
//Switches linked to all cargo bays on profile
@IBAction func maindeckswitch(_ sender: AnyObject) {
if mainbutton.isOn {
maindeckimage.isHidden = true
mainbutton.setOn(false, animated: true)
}else{
maindeckimage.isHidden = false
mainbutton.setOn(true, animated: true)
}
}
@IBAction func fwdholdswitch(_ sender: AnyObject) {
if fwdbutton.isOn {
fwdholdimage.isHidden = true
fwdbutton.setOn(false, animated: true)
}else{
fwdholdimage.isHidden = false
fwdbutton.setOn(true, animated: true)
}
}
@IBAction func aftholdswitch(_ sender: AnyObject) {
if aftbutton.isOn {
aftholdimage.isHidden = true
aftbutton.setOn(false, animated: true)
}else{
aftholdimage.isHidden = false
aftbutton.setOn(true, animated: true)
}
}
override func viewDidLoad() {
super.viewDidLoad()
//Remove Keyboard with background Touch - Ryan Harris
let tapRecognizer = UITapGestureRecognizer()
tapRecognizer.addTarget(self, action: #selector(ViewController.didTapView))
self.view.addGestureRecognizer(tapRecognizer)
}
//Link function to Keyboard removal
func didTapView(){
self.view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// Calculation Code Starts here
@IBAction func Calculate(_ sender: AnyObject) {
let firstValue = Double(ZFWinput.text!)
let secondValue = Double(TotalFuelinput.text!)
let thirdValue = Double(TripFuelinput.text!)
let TFO000 = Double(secondValue!)
let TFO004 = Double(secondValue! * 1.004)
let TFO006 = Double(secondValue! * 1.006)
let TFO007 = Double(secondValue! * 1.007)
let TFO010 = Double(secondValue! * 1.01)
let TFO011 = Double(secondValue! * 1.011)
let TFO012 = Double(secondValue! * 1.012)
let TripF000 = Double(thirdValue!)
let TripF004 = Double(thirdValue! * 1.004)
let TripF006 = Double(thirdValue! * 1.006)
let TripF007 = Double(thirdValue! * 1.007)
let TripF010 = Double(thirdValue! * 1.10)
let TripF011 = Double(thirdValue! * 1.11)
let TripF012 = Double (thirdValue! * 1.12)
// *Self Reminder* Calculation for Total Fuel Adjustment with various TDP Loaded
if mainbutton.isOn && fwdbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO012)"
}
else if fwdbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO012)"
}
else if mainbutton.isOn && fwdbutton.isOn {
TotalFuelOutput2.text = "\(TFO011)"
}
else if mainbutton.isOn && aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO010)"
}
else if aftbutton.isOn {
TotalFuelOutput2.text = "\(TFO006)"
}
else if fwdbutton.isOn {
TotalFuelOutput2.text = "\(TFO007)"
}
else if mainbutton.isOn {
TotalFuelOutput2.text = "\(TFO004)"
}
else {TotalFuelOutput2.text = "\(TFO000)"}
// *Self Reminder* Calculation for Trip Fuel Adjust with various TDP Loaded
if mainbutton.isOn && fwdbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF012)"
}
else if fwdbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF012)"
}
else if mainbutton.isOn && fwdbutton.isOn {
TripFuelOutput2.text = "\(TripF011)"
}
else if mainbutton.isOn && aftbutton.isOn {
TripFuelOutput2.text = "\(TripF010)"
}
else if aftbutton.isOn {
TripFuelOutput2.text = "\(TripF006)"
}
else if fwdbutton.isOn {
TripFuelOutput2.text = "\(TripF007)"
}
else if mainbutton.isOn {
TripFuelOutput2.text = "\(TripF004)"
}
else {TripFuelOutput2.text = "\(TripF000)"}
//----
let fourthValue = Double(TotalFuelOutput2.text!)
let fifthValue = Double(TripFuelOutput2.text!)
let RampWeight1 = Double(firstValue! + secondValue!)
let TOW1 = Double(RampWeight1 - 1)
let LMass1 = (TOW1 - thirdValue!)
let RampWeight2 = Double(firstValue! + fourthValue!)
let TOW2 = Double(RampWeight2 - 1)
let LMass2 = (TOW2 - fifthValue!)
// *Self Reminder* Calculation for center figuers with no TDP adjustments
RampOutput1.text = "\(RampWeight1)"
TOWOutput1.text = "\(TOW1)"
LandOutput1.text = "\(LMass1)"
// *Self Reminder* Calculation for right hand side figures using new TotalFuelOutput2 & TripFuelOutput2
RampOutput2.text = "\(RampWeight2)"
TOWOutput2.text = "\(TOW2)"
LandOutput2.text = "\(LMass2)"
}
}
這將有助於瞭解如何您fourthValue和fifthValue指定的線路不工作。代碼是否不能編譯?或者你有運行時錯誤?無論哪種情況,錯誤是什麼? – Fahim
Appologies,我得到一個線路上的運行時錯誤......讓RampWeight2 =雙(firstValue!+ fourthValue!)說THRED 1:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0) – RyanHK
請參閱http:// www。 raywenderlich.com/10209/my-app-crashed-now-what-part-1以瞭解如何調試崩潰。請確保使用導致錯誤的實際代碼更新您的問題。 – rmaddy