Swift 4.2 Тип «NSAttributedString.Key» не имеет члена «accessibilitySpeechPitch» - PullRequest
0 голосов
/ 01 октября 2018

Я перемещаю некоторый код из Swift 4.0 в 4.2, и у меня возникают проблемы с использованием UIAccessibilitySpeechAttributePitch.В моем файле Swift 4.0 я использовал:

NSAttributedStringKey(rawValue: UIAccessibilitySpeechAttributePitch)

Даже в Swift 4.0 я не мог использовать его напрямую как NSAttributedStringKey.accessibilitySpeechPitch, по некоторым причинам, но я мог обойтичто при инициализации с использованием необработанного значения.Кажется, я не могу сделать это в Swift 4.2.

Если я попытаюсь

NSAttributedString.Key(rawValue: UIAccessibilitySpeechAttributePitch)

в Swift 4.2, я получу

Неверный инициализаторВызов с тем же типом NSAttributedString.Key, что и параметр

, поэтому очевидно, что UIAccessibilitySpeechAttributePitch распознается как NSAttributedString.Key.Однако, если я использую его напрямую, я получаю:

'UIAccessibilitySpeechAttributePitch' был переименован в 'NSAttributedString.Key.accessibilitySpeechPitch'

с предлагаемым исправлением

Заменить «UIAccessibilitySpeechAttributePitch» на «NSAttributedString.Key.accessibilitySpeechPitch»

Поэтому я нажимаю кнопку «исправить», чтобы изменить ее на NSAttributedString.Key.accessibilitySpeechPitch, и затем я получаю

Тип «NSAttributedString.Key» не имеет члена «accessibilitySpeechPitch»

Если я нажимаю команду на UIAccessibilitySpeechAttributePitch без предварительного изменения его на NSAttributedString.Key.accessibilitySpeechPitch, я получаю это объявлениев UIAccessibilityConstants в UIKit:

extension NSAttributedString.Key {
//other stuff
    @available(iOS 7.0, *)
    public static let accessibilitySpeechPitch: NSAttributedString.Key
//other stuff
}

Итак, он, очевидно, существует, но как мой код может его использовать?Нужно ли мне импортировать что-то дополнительное для констант доступности, в дополнение к UIKit?

Редактировать: Мой фактический код (с измененными только некоторыми именами переменных) выглядит следующим образом:

static let someColour=#colorLiteral(red: 1, green: 0.5763723254, blue: 0, alpha: 0.5)
static let attributes=[
    NSAttributedString.Key.backgroundColor: someColour,
    NSAttributedString.Key.strokeWidth: -3.0,
    NSAttributedString.Key.accessibilitySpeechPitch: 1.3
    ]
    as [NSAttributedString.Key : Any]

Iпробовал чистое здание.Я использую Xcode Version 10.0 (10A255)

1 Ответ

0 голосов
/ 24 апреля 2019

Попытка

неподходящего UIKit

Поскольку accessibilitySpeechPitch существует в файле UIKit -> NSAttribute, вы можете увидеть его в extension NSAttributedString.Key

Это сработало

...