Возвращаемое значение в случае ошибки - PullRequest
0 голосов
/ 26 апреля 2018

У меня дата отформатирована, и я получаю дату из API. У меня есть значение, скажем, 28 от 28 апреля 2018 года. Итак, я должен добавить к этим 28 в Swift? Кто-нибудь знает это?

Иначе я пытаюсь установить значения как "th" или "st" в соответствии с датами. Я знаю логику. Я просто застрял с этим:

let dateText = dateFormatterPrint.string(from: date)

if(dateText >= 4 && dateText <= 20) {
    print("I am th")
}

Здесь говорится, что двоичный оператор '> =' нельзя применить к операндам типа Int и String. Я хочу проверить значение в этом диапазоне?

Может кто-нибудь помочь, пожалуйста?

P.S. Я получил это, и при печати я получаю значения правильно, но когда я возвращаюсь, я получаю ошибку

if((count! >= 4 && count! <= 20) || (count! >= 24 && count! <= 30)){
    return textVal = "I am th"
} else if(count! == 1 || count! == 21 || count! == 31) {
    return textVal = "I am st"
} else if(count! == 2 || count! == 22) {
    return textVal = "I am nd"
} else if(count! == 3 || count! == 23) {
    return textVal = "I am rd"
} else {
    print("I am known")
}

Использование неразрешенного идентификатора 'textVal'

Может кто-нибудь помочь?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Ошибка возникает потому, что вы не можете вернуть переменную, которая никогда не была объявлена ​​

Я рекомендую использовать выражение switch

var dateText = dateFormatterPrint.string(from: date)
switch (dateText) {
case "1", "21", "31": dateText.append("st")
case "2", "22": dateText.append("nd")
case "3","23": dateText.append("rd")
default: dateText.append("th")
}
print(dateText)
0 голосов
/ 26 апреля 2018

Похоже, вы пытаетесь отформатировать "порядковый номер". Лучший способ сделать это - настроить NumberFormatter на использование числового стиля ordinal:

let ordinalNumberFormatter = NumberFormatter()
ordinalNumberFormatter.numberStyle = .ordinal

// for example...
ordinalNumberFormatter.string(from: 22) // "22nd"
ordinalNumberFormatter.string(from: 28) // "28th"
ordinalNumberFormatter.string(from: 31) // "31st"
0 голосов
/ 26 апреля 2018

Мы не можем сравнивать String и Int

if(dateText >= "4" && dateText <= "20")
{
     print("I am th")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...