Swift 4.2 и Xcode 10.1 - калькулятор чаевых разбился сразу - PullRequest
0 голосов
/ 15 апреля 2019

Так что я довольно новичок в Swift.Я строю калькулятор чаевых в Swift, и я нашел учебник в Интернете и изменил его.Однако это было учебное пособие по Swift 3, поэтому я не знаю, насколько хорошо оно переводится на Swift 4.2 из Swift 3 и последней версии iOS, но оно работало, пока я не попытался добавить функцию, которая позволила бы мне разделить счет.Теперь все приложение просто дает мне белый экран и без ошибок времени выполнения.

Я попытался реализовать функцию разделения счета двумя способами, включая использование регистра переключателя (в настоящее время в коде) и запрос пользователячтобы ввести число, и ни один из способов не сработал.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var billAmountField: UITextField!

    @IBOutlet weak var tipSelector: UISegmentedControl!

    @IBOutlet weak var userTipAmountField: UITextField!

    @IBOutlet weak var tipAmountField: UITextField!

    @IBOutlet weak var totalAmountField: UITextField!

    @IBOutlet weak var userSplitSelector: UISegmentedControl!

    @IBOutlet weak var totalSplitAmount: UITextField!

    @IBOutlet weak var numSplitLabel: UILabel!

    @IBAction func calculateTip(_ sender: AnyObject) {
        if let billAmount = Double(billAmountField.text!) {
            var tipPercentage = 0.0
            var split = 1.0

            switch tipSelector.selectedSegmentIndex {
            case 0:
                tipPercentage = 0.15
            case 1:
                tipPercentage = 0.18
            case 2:
                tipPercentage = 0.20
            case 3:
                userTipAmountField.isUserInteractionEnabled = true
            if let userTipAmount = Double(userTipAmountField.text!){
                    tipPercentage = userTipAmount / 100
                }
            default:
                break
            }

            switch userSplitSelector.selectedSegmentIndex {
            case 0:
                if split >= 2 {
                    split -= 1
                }
                let splitString = String(split)
                numSplitLabel.text = splitString
            case 1:
                split += 1
                let splitString = String(split)
                numSplitLabel.text = splitString
            default:
                break
            }


            let roundedBillAmount = round(100 * billAmount) / 100
            let tipAmount = roundedBillAmount * tipPercentage
            let roundedTipAmount = round(100*tipAmount)/100
            let totalAmount = roundedBillAmount + roundedTipAmount
            let totalSplitAmt = totalAmount / split

            if (!billAmountField.isEditing) {
                billAmountField.text = String(format: "%.2f", roundedBillAmount)
            }
            tipAmountField.text = String(format: "%.2f", roundedTipAmount)
            totalAmountField.text = String(format: "%.2f", totalAmount)
            totalSplitAmount.text = String(format: "%.2f", totalSplitAmt)


        } else {
            //show error
            billAmountField.text = ""
            tipAmountField.text = ""
            totalAmountField.text = ""
            totalSplitAmount.text = ""
            }
        }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

Я делаю этот проект на виртуальной машине, если это имеет значение.

Вот мой раскадровка

Буду очень признателен за любые предложения по исправлению!

1 Ответ

0 голосов
/ 15 апреля 2019

Проверьте ваш данный контроллер от инспектора, чтобы быть начальным контроллером.И проверьте, в чем состоит проблема.

А вы дали какие-либо ограничения для представления?

Второе и самое важное, что нет Swift 10. Последняя версия Swift - 5.0!Пожалуйста, прочитайте основы, прежде чем разрабатывать.

...