Невозможно переопределить метод prefersHomeIndicatorAutoHidden ()

Я использую эту строку кода в приложении с XCode 10, чтобы уменьшить яркость индикатора домашнего экрана на iPhone X и связанных с ним безрамочных устройствах Apple.

    override func prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }

Самое забавное, что у меня есть копия этого приложения точный, и на одной копии код работает, в то время как код не компилируется:

Method does not override any method from its superclass

Действительно, когда я начинаю вводить «prefers ...», prefersHomeIndicatorAutoHidden появляется как свойство только для чтения, с одной стороны, в то время как оно отображается как метод, с другой стороны, и по умолчанию получает префикс переопределения.

Спасибо, что нашли время,

Лучший

РЕДАКТИРОВАТЬ С РЕШЕНИЯМИ благодаря @inokey

  • Решение 1.Проверьте развертывание (начиная с i0S 12, prefersHomeIndicatorAutoHidden нельзя переопределить как метод)

  • Решение 2:

override var prefersHomeIndicatorAutoHidden : Bool { return true }

Отметьте цель развертывания в настройках проекта. Это может иметь какое-то отношение к версии iOS, установленной по умолчанию в Xcode 10.

inokey 18.09.2018 15:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
1 755
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я предполагаю, что цель развертывания по умолчанию в Xcode 10 - 12, а ваш предыдущий проект - 11 или 10, поэтому он просто отражает изменения в API.

Изменения в SDK указывает, что это было изменено

Спасибо! И действительно, цель развертывания другая. Однако, когда я изменяю цель развертывания на 11, ошибка сохраняется. Кроме того, как мне теперь поступить с изменением? любая идея?

Chris 18.09.2018 15:15

Попробуйте создать приложение еще раз после изменения целевого объекта развертывания, иногда оно не сразу отражает изменение в редакторе.

inokey 18.09.2018 15:18

Я сделал и получаю сообщение "сбой сборки"

Chris 18.09.2018 15:19

Где именно вы переопределяете эту переменную? Есть ли у вас какие-либо другие внешние зависимости, которые могут зависеть от предыдущей реализации этого свойства?

inokey 18.09.2018 15:25

Я поставил его в конец, как раз перед закрывающей скобкой UIViewClass. Одно и то же место для обеих версий (той, которая работает, и той, которая не работает)

Chris 18.09.2018 15:32

Вы имели в виду класс UIViewController? Вы используете какой-то настраиваемый контроллер представления, который может зависеть от внешних библиотек?

inokey 18.09.2018 15:40

Я поместил его сюда: класс ViewController: UITableViewController {}. Никаких внешних библиотек. Я также дважды проверил редактор проекта, чтобы увидеть, могу ли я заметить разницу (в параметрах, связанных с развертыванием), но нет.

Chris 18.09.2018 15:43

Хорошо, я немного запутался, но не могли бы вы повторить настройку, которая не работает? Я имею в виду версию iOS и где именно появляется ошибка.

inokey 18.09.2018 15:45

Я отредактировал исходное сообщение. Я надеюсь, что это помогает. Еще раз спасибо за то, что нашли время !!!

Chris 18.09.2018 15:53

Я могу показаться нубом, но с var это тоже не работает. :(

Chris 18.09.2018 16:28
override var prefersHomeIndicatorAutoHidden { return true } не работает?
inokey 18.09.2018 17:06

@Chris Он по-прежнему показывает ошибку, что не отменяет никаких свойств суперкласса?

inokey 18.09.2018 17:15

Он выдал ту же ошибку, но на самом деле вы были очень близки !!! Правильный синтаксис: override var prefersHomeIndicatorAutoHidden : Bool { return true } Мне нужно было объявить тип, а затем написать закрытие {} Большое спасибо за то, что нашли время !!!

Chris 18.09.2018 17:24

@Chris хорошо, что было указано в исходном ответе на снимке экрана, есть очевидная аннотация типа для сохраненного свойства. В любом случае, если проблема решена, примите ответ.

inokey 18.09.2018 17:25

в Xcode 10 = Swift 4.2 (сентябрь 2018 г.)

Просто используйте приведенный ниже код:

override var prefersHomeIndicatorAutoHidden: Bool { return true }

Мне потребовались часы, чтобы понять, что мне нужно переопределить var, а не func. Спасибо, сэр!

Repose 25.10.2018 05:45

@Repose, это показывает, насколько дерьмовая документация Apple. Их единственное пренебрежительное отношение, не говоря уже о чертовом примере, заставляет всех нас страдать и тратить время зря.

Duck 09.06.2020 12:24

Другие вопросы по теме