Я записываю extension
в Dictionary
, чтобы, когда я даю ему ключ String
, он возвращал мне String
только в том случае, если значение, связанное с ключом, отлично от нуля и не пусто.
extension Dictionary {
subscript(key: String) -> String? {
if let string = super.subscript(key) {
if string.isEmpty == false {
return string
}
}
return nil
}
}
Однако в строке if let string = super.subscript(key) {
я получаю следующую ошибку компиляции, и я не знаю, что это значит, и нет результата Google, который объясняет это:
Ожидается
->
для типа элемента нижнего индекса
Я делаю это, потому что работаю с API, который возвращает JSON, где значение ключа может быть пустой строкой, что является недопустимым значением для приложения по нашим требованиям и, следовательно, так же хорошо, как ноль.
Конечно, более длинный путь работает, но я ищу способ сделать его короче.
if let value = dict["key"] as? String {
if value.isEmpty == false {
// The value is non-nil and non-empty.
}
}
if let value = dictionary["key"] as? String where !value.isEmpty { ... }
- person mattt   schedule 21.05.2015