Можно ли установить переменную, которая принимает несколько типов в Swift? - PullRequest
0 голосов
/ 12 февраля 2019

Я делаю калькулятор, и я застрял на отображаемом числе.Поскольку результаты вычислений и записи могут быть целыми числами или числами с плавающей запятой, есть ли способ установить единственную переменную для отображаемого числа, которая может принимать оба этих типа чисел?

В настоящее время у меня есть числа, предназначенные для отображения в виде NSNumbers, но я не уверен, как заставить переменную принять этот тип, и я не уверен, будет ли проще получить переменнуюпринимать как числа с плавающей точкой, так и целые числа.Любой совет будет очень признателен!Прошу прощения, если это супер очевидный вопрос.

var firstNum = 0     // first num in operation
var secondNum = 0   // second num in operation
var firstNumDisplayed = true

@IBAction func buttonPressed(_ sender: UIButton) {

    switch sender.tag
        case 10,11,12,13,14,15,16,17,18,19,20: // number buttons (11-19) and decimal (20)
            if sender.tag < 20 {
                if firstNumDisplayed {
                    firstNum = NumberFormatter().number(from: String(firstNum)+String(sender.tag-10))!
                }
                else { 
                    secondNum = NumberFormatter().number(from: String(secondNum)+String(sender.tag-10)) }
                }
            else {
                if firstNumDisplayed { 
                    firstNum = NumberFormatter().number(from: String(firstNum)+".")    
                }
                else { 
                    secondNum = NumberFormatter().number(from: String(secondNum)+".")
                }
            }
}

Ошибка, которую я получаю при таком подходе: «Невозможно присвоить значение типа« NSNumber »типу« Int »»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...