NSSecureCoding, как переопределить требуемый supportSecureCoding в подклассеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 NSSecureCoding, как переопределить требуемый supportSecureCoding в подклассе

Сообщение Гость »


Я пытаюсь устранить эту ошибку выполнения в проекте iOS с помощью Swift 5

Класс должен реализовать +supportsSecureCoding и вернуть YES, чтобы убедиться, что его реализация -initWithCoder: совместима с безопасным кодированием». UserInfo={NSDebugDescription=Class 'Divinstructor.ResultDE' имеет суперкласс, который поддерживает безопасное кодирование, но 'Divinstructor. ResultDE' переопределяет -initWithCoder: и не переопределяет +supportsSecureCoding. Класс должен реализовать +supportsSecureCoding и вернуть YES, чтобы убедиться, что его реализация -initWithCoder: совместима с безопасным кодированием.

Однако я не нашел способа преодолеть эту ошибку, поскольку попытка следовать инструкциям по ошибке приводит к ошибке компиляции, которую мне до сих пор не удалось устранить.

Я обновляю свое приложение до NSSecureCoding. NSKeyedUnarchiver.unarchiveObject(with:) устарел, начиная с iOS12, и его необходимо заменить на NSKeyedUnarchiver.unarchivedObject(ofClass: ,from: ), что действительно приводит к необходимости перехода от NSCoding к NSSecureCoding.

Это работает для моего основного класса (Result), который я модифицирую, чтобы он соответствовал NSSecureCoding. Одним из необходимых вещей является добавление класса, соответствующего NSSecureCoding

статическая переменная supportSecureCoding: Bool = true Однако во время выполнения я столкнулся с проблемой (см. выше) для класса (ResultDE), который наследуется от моего класса (Result).

В сообщении об ошибке говорится, что «ResultDE» имеет суперкласс, который поддерживает безопасное кодирование, но «Divinstructor.ResultDE» переопределяет -initWithCoder: и не переопределяет +supportsSecureCoding».

Однако я пробовал множество вариантов переопределения supportSecureCoding, но безуспешно.

переопределить public static var supportSecureCoding: Bool= true Очевидное выше также приводит к ошибке компиляции «Невозможно переопределить с помощью сохраненного свойства supportSecureCoding» Все мои попытки приводят к ошибке компиляции. «Невозможно переопределить сохраненное свойство supportSecureCoding»

Есть ли у кого-нибудь идея, как переопределить supportSecureCoding в подклассе?

Я попытался удалить статическую информацию для supportSecureCoding в классе man (что сделало ее несоответствующей протоколу), но у меня по-прежнему возникает ошибка компиляции «Невозможно переопределить с помощью сохраненного свойства supportSecureCoding».

вот короткий код, воспроизводящий ошибку компиляции
импортный фонд Результат класса: NSObject, NSSecureCoding { статическая переменная supportSecureCoding: Bool = true имя переменной: String = "-" переопределить инициализацию() { супер.инит() } требуется init (кодер-декодер: NSCoder) { супер.инит() name = decoder.decodeObject(forKey: «имя») как! Нить } кодирование функции (с кодером: NSCoder) { coder.encode(имя, forKey: "имя") } класс ResultDE: Результат { переопределить статическую переменную supportSecureCoding: Bool = true требуется init (кодер-декодер: NSCoder) { супер.инит() name = decoder.decodeObject(forKey: «имя») как! Нить } переопределить кодировку функции (с кодером: NSCoder) { coder.encode(имя, forKey: "имя") } } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Применение типов с помощью NSSeCureCoding
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Позволяет ли полиморфизм переопределить все методы своего суперкласса в подклассе?
    Anonymous » » в форуме JAVA
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Как переопределить функцию шаблона в подклассе?
    Гость » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Гость
  • Как переопределить универсальный метод в подклассе Java
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как переопределить универсальный метод в подклассе Java
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»