Size: a a a

2019 October 25

ВК

Варя Кузнецова... in SwiftBook
Denis
подскажите, вот такой код.

protocol Move {
   
func move(on Distance:Int)
}

protocol CanMove: Move {
   
var maxDistance: Int { get }
   
func move(on Distance:Int)
}


есть возможность как то указать в протоколе CanMove что обязательно в функции Move надо проверить

func move(on Distance: Int) {
       
if Distance > self.maxDistance { return }
   }
мне кажется, это не лучшее деление протоколов. Оно может нарушить принцип Барбары Лисков (оно этим в основном и занимается) лучше не наследовать интерфейсы в таком случае, и для второго протокола сделать, чтобы он возвращал Bool, показывающий, произошло движение или нет. хорошо про принцип барбары лисков написано у Мартина
источник

D

Denis in SwiftBook
идея в духе не дать по ошибке отправить самолет на 5000км если у него тех возможность лететь максимум на 3000км
источник

ВК

Варя Кузнецова... in SwiftBook
и скорее в этой ситуации простой Move - частный случай CanMove, у которого MaxDistance == Int.max, а не наоборот как у тебя
источник

ВК

Варя Кузнецова... in SwiftBook
Denis
идея в духе не дать по ошибке отправить самолет на 5000км если у него тех возможность лететь максимум на 3000км
поменяй тогда порядок наследования, чтоб принцип соблюдался
источник

D

Denis in SwiftBook
ну тут типа мысль, самолет может делать мув например по взлетной площадке, тут не нужна максдистанция
источник

ВК

Варя Кузнецова... in SwiftBook
Denis
ну тут типа мысль, самолет может делать мув например по взлетной площадке, тут не нужна максдистанция
приведенные мной варианты решают эту задачу оба) мысли не только в форматах задачи, но и хорошего кода, архитектуры, паттернов, старания соблюсти принципы. иначе потом будет сложнее поддерживать
источник

ДБ

Денис Бирюков... in SwiftBook
Всем привет. Ошибку выдает когда пишу #selector(kbDidShow). Делаю как в кусре. Что я не учел?
источник

MB

Mikhail Borisov in SwiftBook
Денис Бирюков
Всем привет. Ошибку выдает когда пишу #selector(kbDidShow). Делаю как в кусре. Что я не учел?
а ошибка что показывает?
источник

ВК

Варя Кузнецова... in SwiftBook
Денис Бирюков
Всем привет. Ошибку выдает когда пишу #selector(kbDidShow). Делаю как в кусре. Что я не учел?
метода kbDidShow нет, вот и ругается. через селектор его вызывать пытаетесь. когда напишете метод, не забудьте добавить @objc
источник

НС

Николай Савенков... in SwiftBook
Подскажите как сделать чтобы про выходе из сеарчбара текст набранный пользователем не исчезал?
источник

ДБ

Денис Бирюков... in SwiftBook
тогда почему не ругается на автора курса SwiftBook ))
источник

ДБ

Денис Бирюков... in SwiftBook
источник

ВК

Варя Кузнецова... in SwiftBook
Денис Бирюков
тогда почему не ругается на автора курса SwiftBook ))
не успел сругаться, возможно. трансляция-то тоже часть сил компухтера берет, а с автодополнением у многих задержки
источник

ВК

Варя Кузнецова... in SwiftBook
либо у него этот метод есть где-то в экстеншнах к классу
источник

ДБ

Денис Бирюков... in SwiftBook
любопытно.
источник

YM

Yury Mikhalkevich in SwiftBook
Привет всем,  попытался повторить урок по swiftUi и обнаружил большой отступ в navigation bar на экране Teachers, подскажите как решить эту проблему (в некоторых видео уроках это проблема есть а в некоторых она не наблюдется)
источник

YM

Yury Mikhalkevich in SwiftBook
источник

А

Алмаз ® in SwiftBook
Yury Mikhalkevich
self.navigationController?.navigationBar.prefersLargeTitles = false
источник

А

Алмаз ® in SwiftBook
Или можете так. Разницы нет Или можете так. Разницы нет

navigationItem.largeTitleDisplayMode = .never
источник

А

Алмаз ® in SwiftBook
Первый вариант отключает данный вид в навигейшен баре. А второй применяет один из видов навигационного бара
источник