Вопросы по теме '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 просмотров
schedule
04.11.2022
Как сделать протокол, который объявляет свойство типа протокола?
Я пытаюсь использовать протоколы и расширения в 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 просмотров
schedule
19.08.2022
Ограничить связанный тип
Упрощенная версия моего кода, которая показывает проблему:
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 просмотров
schedule
20.07.2023
Можно ли настроить неявное преобразование из NSError в пользовательскую ошибку в Swift?
Прочитав следующее из NSHipster , я задумался о NSError и о том, можно ли что-то настроить, чтобы NSError неявно преобразуется в пользовательский тип ошибки.
Я создал следующее:
protocol NSErrorConvertible {
init(error: NSError)
}...
77 просмотров
schedule
15.03.2024
Какова цель протоколов, если все методы необязательны?
Я понимаю, для чего служат протоколы (чтобы тип соответствовал установленному списку методов и/или свойств), но я не понимаю, какова цель протокола со всеми необязательными методами. Одним из примеров может быть UITextFieldDelegate .
Если все...
124 просмотров
schedule
16.11.2022
Протокол 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 просмотров
schedule
10.01.2023
Расширить класс, соответствующий протоколу?
Как я могу сделать расширение класса, реализующего протокол?
Что-то такое :
protocol proto {
func hey()
}
и класс, соответствующий proto :
Class MyClass: UIViewController, proto {
func hey() {
print("Hey!")
}...
894 просмотров
schedule
03.05.2024