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

Сделайте быстрый класс совместимым с протоколом - на уровне статики / класса
Я пытаюсь создать общий подкласс UITableViewController в Swift, который будет вмещать любое количество различных типов ячеек табличного представления, не имея внутренних сведений о какой-либо из них. Для этого я пытаюсь использовать протоколы для...
2007 просмотров
schedule 01.08.2023

Swift: не удалось присвоить значение свойству протокола?
Класс A предоставляет строковое значение. Класс B имеет внутри себя два члена типа A и предоставляет вычисляемое свойство "v" для выбора одного из них. class A { var value: String init(value: String) { self.value = value } }...
2220 просмотров
schedule 22.09.2022

Сделать свойство типа, а также соответствовать протоколу в Swift
Я хотел бы создать свойство определенного типа, а также соответствующее протоколу, что я бы сделал в Objective-C следующим образом: @property (nonatomic) UIViewController<CustomProtocol> *controller; Я ищу, чтобы указать, что свойство...
2601 просмотров
schedule 28.10.2022

Аннотировать объявления функций Swift, которые поддерживают соответствие протоколу?
Существует ли стандартный механизм для аннотирования объявлений функций в Swift, чтобы указать, что они присутствуют, потому что класс соответствует какому-то протоколу? Например, это объявление может присутствовать, потому что класс соответствует...
1732 просмотров
schedule 13.11.2022

Передача перечисления с несколькими универсальными типами в качестве аргумента
У меня проблема со Swift 2 - XCode версии 7.0 бета 5 (7A176x) У меня есть enum State с двумя универсальными типами. Функция printState принимает аргумент состояния и печатает «один» или «два» в зависимости от аргумента. protocol Protocol1 {...
155 просмотров
schedule 27.03.2024

Обертывание типа обратного вызова протоколами Swift
Допустим, я имею дело с библиотекой, которую не контролирую, и пытаюсь обернуть класс, определяющий тип обратного вызова, чтобы отделить мой код для целей тестирования. Вот класс внутри модуля AXSwift : public class Application { public...
1002 просмотров
schedule 19.04.2023

Попытка расширить IntegerType (и FloatingPointType); Почему нельзя преобразовать все типы Int в NSTimeInterval
(Наверное, название нужно получше...) Я хотел бы иметь набор средств доступа, которые я мог бы использовать в коде для быстрого выражения длительности времени. Например: 42.seconds 3.14.minutes 0.5.hours 13.days Этот пост показывает,...
1198 просмотров

Как сделать протокол, который объявляет свойство типа протокола?
Я пытаюсь использовать протоколы и расширения в Swift, но получаю ошибку компиляции, которую не могу понять. Если я объявлю два протокола, которые определяют Shape следующим образом: protocol Shape { var sides : Int { get } var fill : Fill...
61 просмотров
schedule 15.01.2023

Реализация делегата Objective C в Swift
У меня есть класс Objective C с методами, которые выглядят так: @class Client; @protocol ClientDelegate <NSObject> @optional -(void) receivedMessageFromClient : (id) message; @end @interface Client : NSObject +(id) setup;...
7679 просмотров
schedule 28.03.2023

Расширение протокола Swift2 NSObjectProtocol
Я хочу, чтобы метод делегата автоматически реализовывался для некоторого NSObjectProtocol, соответствующего некоторому протоколу, но я очень стараюсь, а не делаю это. Демо ниже Обновите для более точного...
535 просмотров
schedule 09.10.2022

Невозможно скомпилировать при использовании расширения протокола и @objc
Я не могу скомпилировать следующий код, и я не знаю, почему. Я упростил это до этого ради удобочитаемости. @objc protocol MyProtocol { func someMethod() -> String } extension MyProtocol { func someMethod() -> String {...
12 просмотров
schedule 24.06.2022

Передавайте данные по протоколу при использовании Container для просмотра другого ViewController в Swift
Я начал работать над этим вопросом приложение. Я начал с tableView категорий: Для обмена данными я решил использовать протокол: protocol Category { func data(object:AnyObject) } В первом ViewController есть следующий код:...
277 просмотров

Ограничить связанный тип
Упрощенная версия моего кода, которая показывает проблему: protocol Transformer { typealias Input typealias Output func transform(s: Input) -> Output } protocol InputType {} protocol OutputType {} extension Int: OutputType {}...
95 просмотров
schedule 23.09.2023

Как получить доступ к статическим переменным в методах, используя расширения протокола Swift, подобные «абстрактному классу»
Я пытался создать абстрактное поведение, подобное суперклассу, в Swift, используя протоколы и расширения, предложенные здесь: Абстрактные классы на языке Swift Но я не могу понять, как писать методы, использующие статические (классовые) переменные....
769 просмотров

Можно ли настроить неявное преобразование из NSError в пользовательскую ошибку в Swift?
Прочитав следующее из NSHipster , я задумался о NSError и о том, можно ли что-то настроить, чтобы NSError неявно преобразуется в пользовательский тип ошибки. Я создал следующее: protocol NSErrorConvertible { init(error: NSError) }...
77 просмотров
schedule 15.03.2024

Какова цель протоколов, если все методы необязательны?
Я понимаю, для чего служат протоколы (чтобы тип соответствовал установленному списку методов и/или свойств), но я не понимаю, какова цель протокола со всеми необязательными методами. Одним из примеров может быть UITextFieldDelegate . Если все...
124 просмотров

Протокол Swift, вложенный в класс
Я хотел бы вложить протокол в свой класс, чтобы реализовать шаблон делегата следующим образом: class MyViewController : UIViewController { protocol Delegate { func eventHappened() } var delegate:MyViewController.Delegate?...
10094 просмотров
schedule 10.02.2024

В Swift, как мне вернуть объект того же типа, который соответствует протоколу
У меня есть следующий протокол protocol JSONInitializable { static func initialize(fromJSON: NSDictionary) throws -> Self? } Теперь я пытаюсь заставить эту функцию возвращать любой класс, соответствующий протоколу. т.е. если у меня...
1351 просмотров
schedule 21.09.2022

Неустранимая ошибка при приведении массива типов к протоколам: невозможно связать с Objective-C
Есть похожие вопросы , но этот один находится в последней версии Swift 2.2. Надеюсь, к настоящему времени есть решение, потому что это кажется мне большим препятствием для Protocol-Oriented Programming . Приведенное ниже не удается при...
122 просмотров

Расширить класс, соответствующий протоколу?
Как я могу сделать расширение класса, реализующего протокол? Что-то такое : protocol proto { func hey() } и класс, соответствующий proto : Class MyClass: UIViewController, proto { func hey() { print("Hey!") }...
894 просмотров
schedule 03.05.2024