Вопросы по теме '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 просмотров
schedule
17.05.2024
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 просмотров
schedule
03.06.2024
Создание протокола 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 просмотров
schedule
22.01.2023
Наследование в быстрых протоколах
Как решить в 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 просмотров
schedule
11.01.2023
инициализировать новый экземпляр класса с параметром объекта 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