Вопросы по теме 'swift-protocols'

Функция протокола, возвращающая Self
У меня есть протокол P, который возвращает копию объекта: protocol P { func copy() -> Self } и класс C, реализующий P: class C : P { func copy() -> Self { return C() } } Однако, если я помещаю возвращаемое...
29959 просмотров

Как создать расширение протокола, возвращающее подтверждающий тип?
Я пытаюсь реализовать расширение протокола JsonProcess, которое имеет функцию, которая принимает NSData в качестве аргумента, и я хочу создавать различные расширения протокола, используя собственные требования, что-то вроде этого extension...
528 просмотров

Отметить метод протокола как устаревший
Как сделать так, чтобы метод протокола выглядел как устаревший для тех, кто его реализует? Я пробовал использовать @available , как показано ниже, но при реализации метода протокола в Xcode не отображается никаких предупреждений. protocol...
4261 просмотров

Почему мое расширение протокола Swift не может обернуть существующую функцию того же типа?
Я пытаюсь создать «безопасный» оператор индексации для коллекции - такой, который игнорирует части диапазонов, выходящие за пределы доступных индексов для коллекции. Желаемое поведение - возвращать Slice во всех случаях; когда нет перекрытия между...
307 просмотров
schedule 23.11.2021

Блокировать связанный тип в протоколе
Вот пример кода, который я узнал здесь ( http://blog.krzyzanowskim.com/2015/06/26/paging/ ): protocol AsyncGeneratorType { associatedtype Element associatedtype Fetch func next(_ fetchNextBatch: Fetch, _ onFinish: ((Element) -> Void)?) }...
284 просмотров
schedule 01.12.2021

Расширение UITableViewDataSource с реализацией по умолчанию
Вопрос: Как написать реализацию UITableViewDataSource по умолчанию, расширив ее? Swift поддерживает реализации по умолчанию в расширениях протокола, а UITableViewDataSource - это протокол. Так почему же приведенный ниже пример не работает?...
1440 просмотров
schedule 29.11.2021

Как я могу правильно использовать AssociatedType в моем протоколе
Я пытаюсь придумать протокол-ориентированную MVVM для своих ячеек tableview. У меня их много. my viewModel protocol PlainTableViewCellModelType { var backgroundColor : UIColor {get} var textColor: UIColor {get} var titleFont :...
380 просмотров

Расширение протокола Swift, где Self: Equatable не работает
Может ли кто-нибудь пролить свет на то, почему это не работает? Я получаю сообщение об ошибке Binary operator '==' cannot be applied to operands of type 'Self' and 'CustomEquatable' protocol CustomEquatable { func isEqualTo(_ other:...
435 просмотров
schedule 07.10.2021

Как бы вы смоделировали интерфейс Java List в Swift?
Я пытаюсь понять, для каких проблем протоколы подходят в Swift, и я думаю, что этот вопрос был бы хорошим прокси для этого. Мы можем взглянуть на подмножество List интерфейса Java. interface List<T> { public void add(t: T) } Я...
819 просмотров
schedule 04.09.2021

Создание фабрики для протокола со связанным типом
Новичок в Swift и пытается найти хорошие способы решить, какую реализацию протокола использовать. Протоколы со связанными типами, похоже, вообще не отображаются на общие интерфейсы на других языках. Я думал, что сработало бы что-то вроде следующего....
31 просмотров
schedule 18.10.2021

Swift: можно ли использовать делегирование, когда оба представления не связаны напрямую друг с другом?
У меня три ViewController: ViewController1, ViewController2 и ViewController3. ViewController1 подталкивает ViewController2 на экране, и оба представления могут взаимодействовать друг с другом посредством делегирования. ViewController2...
35 просмотров
schedule 04.11.2021

Общий метод синтаксического анализатора для декодируемых и сериализуемых
Я пытаюсь написать общий метод парсера, который будет анализировать данные по типу возвращаемого значения. Изменить Мы получаем сложный ответ json от нескольких серверов. Иногда одна и та же модель ответа может означать разные вещи или...
50 просмотров

Отправка статических методов расширения протокола Swift с суперклассом и подклассом
У меня похожая, но немного другая проблема, описанная в: Swift диспетчеризация метода расширения протокола с суперклассом и подклассом . Проблема связана со статическими методами в протоколах. У меня есть следующий код: protocol Protocol:...
737 просмотров

Swift — подключение делегата к пользовательской ячейке Xib
[РЕШЕНО] Решение При создании Xib File я не удалял начальный UIView. Принимая во внимание, что мне пришлось удалить это представление и после добавить новый CollectionViewCell в этот xib. Ссылка: IBAction внутри UITableViewCell не...
978 просмотров
schedule 01.04.2022

Как использовать реализацию интерфейса по умолчанию с kotlin Multiplatform и Swift
Я использую KMP для создания кроссплатформенного приложения как для Android, так и для iOS. Моя проблема в том, что когда я создаю интерфейс в общем основном основном Kotlin с реализацией по умолчанию, я не могу использовать эту реализацию в iOS, и...
304 просмотров

Почему соответствие Strideable меняет способ оценки умножения?
Я создал бесконечный цикл, сопоставив структуру Swift с протоколом Strideable. Я свел задачу к следующему случаю. struct T: Strideable { func advanced(by n: Int) -> T { return T() } func distance(to other: T) -> Int {...
170 просмотров
schedule 07.05.2022

Почему мне разрешено устанавливать свойство протокола только для чтения, используя структуру, которая наследует указанный протокол?
Я следую учебному пособию по парадигме программирования, ориентированной на протокол, в которой меня смущает то, что я считал довольно простым, а именно свойства протоколов или геттеры и сеттеры только для чтения. Насколько я понимаю, свойство только...
347 просмотров
schedule 28.05.2022

Как вы устраняете неоднозначность между статическими методами и реализованными протоколами?
Кастинг отлично работает для функций экземпляра. protocol Protocol1 {} extension Protocol1 { func instanceFunc() {} static func staticFunc() {} } protocol Protocol2 {} extension Protocol2 { func instanceFunc() {} static func...
267 просмотров

Протокол может использоваться только как общее ограничение, потому что у него есть требования Self или associatedType.
У меня есть протокол RequestType, и у него есть модель AssociatedType, как показано ниже. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func...
65245 просмотров
schedule 16.06.2022

Как визуализировать протоколы и расширения в UML?
Представляется разумным использовать интерфейсы UML для визуализации протоколов Swift в UML. Но как мне визуализировать расширение, которое обеспечивает реализацию по умолчанию для определенного протокола? Должен ли я просто использовать класс типа...
1340 просмотров
schedule 28.06.2022