Использование необъявленного типа AttributedString
Xcode 8 beta 4 больше не распознает базовый класс AttributedString
,
Я воспроизвел это на этом простом примере игровой площадки:
//: Playground - noun: a place where people can play
import Foundation
let attrStr1 = NSAttributedString()
let attrStr2 = AttributedString() // Use of undeclared type 'AttributedString'
поскольку AttributedString
был доступен в более старых бета-версиях Xcode 8 Swift 3, я думаю, что это Foundation
ошибка, которую нужно исправить, а не ошибка исходного кода в Playground?
1 ответ
Несмотря на то, что в примечаниях к выпуску XCode это не описано, обновление версии 2 для предложения по развитию Swift SE-0086 Префикс Drop NS в Swift Foundation добавил префикс "NS" обратно к нескольким классам Foundation, которые ранее отбрасывали префикс.
Причина в следующем:
Если в ближайшем будущем планируется, что класс будет иметь эквивалент типа значения, сохраните префикс NS. Примеры: NSAttributedString, NSRegularExpression, NSPredicate.
Итак, Свифт AttributedString
Тип вернется в какой-то момент, как структура в следующий раз, вместо того, чтобы быть классом.
Похоже, что некоторые из этих улучшений станут "фокусом для Swift 4". На данный момент необходимо вернуться к использованию NSAttributedString
учебный класс.
Если вам интересно узнать, сколько типов было затронуто обновлением SE-0086 v2, похоже, что редакция затрагивает ~32 типа, которые ранее отбрасывали префикс NS для Swift 3.