Не удалось решить эту проблему Null в Swift 4? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь проверить значение, которое я получаю от сервера, если строка пуста, я использую следующее условие.

 var line2Cvar = permanentCAddVarDictionary?["line2"] as! String
                    if line2Cvar.isEmpty {
                        line2Cvar = "---"
                    }
                    self.permanentCAddDic.setValue(line2Cvar, forKey: "line2Cvar")

, если строка пуста, я использую следующее условие.

 var line2Cvar = permanentCAddVarDictionary?["line2"]

                    if line2Cvar is NSNull {
                        line2Cvar = "----"
                    }
                    self.emergencyContactDic.setValue(line2Cvar, forKey: "line2Cvar")

но в моем случае иногда я опорожняюсь, а иногда я получаю нулевое значение.как строка проверки пуста или равна нулю напрямую.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018
extension String {
    var isEmptyNull:Bool {

        let string = self.trimmingCharacters(in: CharacterSet.whitespaces)

        if string == "" || string.lowercased() == "null" {
            return true
        }else {
            return false
        }
    }
}

Вы можете проверить здесь

let stringvalue = ""

if stringvalue.isEmptyNull {
     print("string value is empty or null")
}else {
     print(stringvalue)
}

выход

string value is empty or null
0 голосов
/ 31 мая 2018

При проверке строки в словаре у вас есть 4 возможных состояния:

  1. строка присутствует и непустая
  2. строка присутствует, но пуста
  3. ключ находится в словаре, но значение не является строкой
  4. ключ отсутствует в словаре

Вы должны проверять каждый случай отдельно.

let possibleString = dict[key]

if let string = possibleString as? String {
    if string.isEmpty {
        // deal with empty case
    } else {
        // deal with non-empty case
    }
} else if possibleString == nil {
    // deal with key not-present case
} else {
    // deal with value-not-string case
}

Вы можете комбинировать некоторые проверки и исключать другие, в зависимости от конкретной логики, которая вам требуется.Например, если вы хотите обрабатывать не присутствующие и не строки одинаково, вы можете отменить проверку nil и просто перейти к окончательному else.

...