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

Swift - метод класса, который должен быть переопределен подклассом
Есть ли в Swift стандартный способ сделать "чистую виртуальную функцию", т.е. тот, который должен быть переопределен каждым подклассом, и который, если это не так, вызывает ошибку времени компиляции?
56140 просмотров
schedule 11.07.2022

Как в Swift объявить переменную определенного типа, которая соответствует одному или нескольким протоколам?
В Swift я могу явно указать тип переменной, объявив ее следующим образом: var object: TYPE_NAME Если мы хотим пойти дальше и объявить переменную, которая соответствует нескольким протоколам, мы можем использовать декларативную protocol :...
38310 просмотров
schedule 17.09.2022

Протокол Swift форсирует протокол Equatable
Я определил 2 протокола. Мне нужен первый (NameProtocol) для обеспечения соблюдения протокола Equatable. В то время как другой класс (BuilderProtocol) имеет метод, возвращающий первый (NameProtocol). public protocol NameProtocol : Equatable {...
1510 просмотров
schedule 12.11.2023

Расширение Swift Array с предложением where не работает с подпротоколами
Я написал код, который, по моему мнению, должен работать в Swift 2 (Xcode 7b4), но он не компилируется. Я надеюсь получить некоторые мысли о том, должно ли то, что я пытаюсь сделать, быть действительным. Рассмотрим этот пример расширения Array...
781 просмотров
schedule 29.10.2022

Вложенные типы внутри протокола
Внутри протоколов могут быть объявлены вложенные типы, например: protocol Nested { class NameOfClass { var property: String { get set } } } Xcode говорит "Тип здесь не разрешен" : Тип «NameOfClass» не может быть...
12654 просмотров
schedule 11.12.2023

swift 2 Func Аргумент типа по умолчанию
Учитывая следующий код: protocol NetworkWire { //some requirements } protocol EntityRESTRequest { //some requirements } protocol OctupPromisable { //some requirements } final class HTTPNetworkWire: NetworkWire, EntityRESTRequest,...
189 просмотров
schedule 10.11.2022

Расширение протокола Swift со свойством, соответствующим протоколу
Я объявил такой протокол protocol JSONConnection { var request: NSURLRequest { get set } var session: NSURLSession { get set } var jsonRootObject: JSONSerializable? { get set } } Здесь JSONSerializable не является фактическим типом, это...
1338 просмотров
schedule 11.06.2023

Ассоциированный тип по умолчанию с использованием расширения протокола
У меня есть протокол с associatedType . Я хочу указать значение по умолчанию typealias для этого типа в расширении протокола. Это должно быть сделано только для классов, которые наследуются от определенного класса. protocol Foo: class {...
986 просмотров

Self в протоколе всегда должен быть необязательным?
Пример: internal protocol PropertyProtocol { var property: Self { get } } Единственный вариант, который я вижу для его реализации, скажем, в классе, internal final class PropertyClass: PropertyProtocol { let property:...
48 просмотров
schedule 24.06.2023

передает аргумент модель представления или протокол
Коды взяты из протокольно-ориентированного MVVM , и это как ViewModel выглядит : struct MinionModeViewModel: SwitchWithTextCellDataSource { var title = "Minion Mode!!!" var switchOn = true } extension MinionModeViewModel:...
549 просмотров
schedule 13.06.2024

протокол с таким же именем связанного типа
Если у меня есть два протокола, связанный тип которых совпадает, например protocol Read { associatedtype Element func read() -> Element } protocol Write { associatedtype Element func write(a: Element) } Тогда я хотел бы иметь...
994 просмотров
schedule 18.02.2022

Разрешить только определенным классам соответствовать протоколу в Swift
Вопрос Я хотел бы создать протокол, который может быть реализован только определенным классом. Пример Допустим, есть протокол X , так что ему может соответствовать только класс A : A:X Каждый X есть A , но не каждый A есть...
361 просмотров

Создание протокола ValidIndexCollection в Swift 3
Некоторое время назад я создал тип Binary Search Tree в Swift, который хотел соответствовать протоколу Collection . Однако требование endIndex — это индекс «за концом», который на самом деле не подходит для дерева, потому что каждый индекс должен...
377 просмотров
schedule 25.10.2022

Коллекция ‹типа реализации протокола› в Swift
Рассмотрим эту (упрощенную) программу. У меня есть протокол Thing , реализованный в двух структурах, ThingOne и ThingTwo . У меня есть класс ThingCollection , в котором я хотел бы хранить произвольные экземпляры структуры, реализующие протокол...
36 просмотров
schedule 28.04.2024

Как соответствовать протоколу, который объявляет свойство протокола типа?
Я пытаюсь создать протокол и пару классов, которые ему соответствуют. Протокол имеет свойство, которое соответствует другому протоколу, поэтому каждый класс должен иметь соответствующее свойство. Это (что-то вроде), что я пытаюсь до сих пор:...
85 просмотров
schedule 09.10.2022

Протокол Swift @objc с дополнительной реализацией функции вызывает ошибку сборки
У меня есть следующий протокол (который я использую как ссылку IBOutlet на раскадровку, поэтому он должен быть с @objc). /// This protocol implemented by views that contain a **main** collection view. @objc protocol CollectionInViewMethods {...
365 просмотров
schedule 03.08.2022

Как соответствовать набору и получению переменных протокола?
Я играю с протоколами и как им соответствовать. protocol Human { var height: Int { get set } } struct Boy: Human { var height: Int { return 5 } // error! } Я пытаюсь изучить различные способы реализации set and get. Однако...
27900 просмотров

Наследование в быстрых протоколах
Как решить в swift (2.0) этот случай: у нас есть два протокола: protocol SuperDelegate{ func handleSuccess(rsp: BaseRsp) } protocol ChildOfSuperDelegate: SuperDelegate { func handleSuccess(rsp: ChildOfBaseRsp) } и какое-то место в...
66 просмотров
schedule 05.02.2023

Ошибка Swift: невозможно вызвать значение нефункционального типа '[T.Iterator.Element.Type]'
Это рабочий код от Swift Playgrounds - Generics: func makeArray<T>(item: T, numberOfTimes: Int) -> [T] { var result = [T]() // some code here return result } Обратите внимание на строку var result = [T]() Здесь...
783 просмотров

инициализировать новый экземпляр класса с параметром объекта args, который соответствует протоколу
У меня есть класс и протокол в myModel.swift public protocol IModelArgs{ var name: String { get set}; var surname: String { get set}; } public class Model { var name: String; var surname: String; init(args: IModelArgs) {...
619 просмотров
schedule 25.06.2023