символы - свойство экземпляра String, не рекомендуется с Xcode 9.1
Было очень полезно получить подстроку из String, используя characters
свойство, но теперь оно устарело, и Xcode предлагает использовать substring
. Я попытался проверить SO вопросы и руководства для разработчиков Apple для того же самого. Но не смог увидеть ни одного решения / альтернативы, как предлагалось
Вот предупреждающее сообщение:
«символы» устарели: используйте строку или подстроку
У меня так много строковых операций, которые выполняются / обрабатываются с использованием свойства characters
.
У кого-нибудь есть идея / информация об этом обновлении?
String
изменениях с Swift 3 на 4 и, пожалуйста, прочитайте также SE0163count
вместо.string.characters.forEach
новый APIstring.forEach { char in process(char) }
Ответы:
Swift 4 внес изменения в строковый API.
Вы можете просто использовать
!stringValue.isEmpty
вместоstringValue.characters.count > 0
для получения дополнительной информации вы получите образец здесь
например
источник
Swift 4 против Swift 3 примера:
источник
Один из наиболее распространенных случаев манипулирования строками - это ответы JSON. В этом примере я создал расширение в своем приложении для часов, чтобы отбрасывать последние (n) символов объекта JSON Биткойн.
Свифт 3:
Xcode 9.1 Сообщение об ошибке:
Xcode говорит нам использовать строковую переменную или метод напрямую .
Свифт 4:
Полное расширение:
Вызов:
Приставка:
Дополнительные примеры:
print("Spell has \(invisibleSpellName.count) characters.")
return String(dropLast(n))
return String(removeLast(n))
Документация:
Вы будете часто использовать общие методы, такие как
dropLast()
или,removeLast()
илиcount
здесь, вот явная документация Apple для каждого метода.droplast ()
removelast ()
подсчет символов
источник
Это предупреждение - лишь вершина айсберга, было множество изменений строк, строки снова представляют собой набор символов, но мы получили что-то новое и классное, подстроки :)
Это отличная статья об этом: https://useyourloaf.com/blog/updating-strings-for-swift-4/
источник
Используйте это,
characters
потому чтоString
перестали быть коллекцией в Swift 2.0. Однако это все еще действительный код в Swift 4, но теперь он больше не нужен,String
иCollection
снова.Например, Swift 4
String
теперь имеет свойство прямого счета, которое дает количество символов:Примеры для String и SubString.
Swift 4
String
теперь напрямую получает Element, который дает первый символ String:(string.characters.first)
Используя SubString, получите первый символ.
источник
.first
потому что если строка""
пуста. он только вернет ноль, ноsubstring
выдаст ошибку..characters
достаточноВы также можете использовать этот код для группировки словарей, не используя {$ 0.characters.first! }.
источник
Просто удалите символы Например:
stringValue.characters.count к stringValue.count
источник