Вопросы по теме 'swift-protocols'
Функция протокола, возвращающая Self
У меня есть протокол P, который возвращает копию объекта:
protocol P {
func copy() -> Self
}
и класс C, реализующий P:
class C : P {
func copy() -> Self {
return C()
}
}
Однако, если я помещаю возвращаемое...
29959 просмотров
schedule
29.11.2021
Как создать расширение протокола, возвращающее подтверждающий тип?
Я пытаюсь реализовать расширение протокола JsonProcess, которое имеет функцию, которая принимает NSData в качестве аргумента, и я хочу создавать различные расширения протокола, используя собственные требования, что-то вроде этого
extension...
528 просмотров
schedule
11.09.2021
Отметить метод протокола как устаревший
Как сделать так, чтобы метод протокола выглядел как устаревший для тех, кто его реализует? Я пробовал использовать @available , как показано ниже, но при реализации метода протокола в Xcode не отображается никаких предупреждений.
protocol...
4261 просмотров
schedule
27.09.2021
Почему мое расширение протокола 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 просмотров
schedule
07.09.2021
Расширение протокола 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 просмотров
schedule
20.10.2021
Отправка статических методов расширения протокола Swift с суперклассом и подклассом
У меня похожая, но немного другая проблема, описанная в: Swift диспетчеризация метода расширения протокола с суперклассом и подклассом .
Проблема связана со статическими методами в протоколах.
У меня есть следующий код:
protocol Protocol:...
737 просмотров
schedule
02.03.2022
Swift — подключение делегата к пользовательской ячейке Xib
[РЕШЕНО]
Решение
При создании Xib File я не удалял начальный UIView. Принимая во внимание, что мне пришлось удалить это представление и после добавить новый CollectionViewCell в этот xib.
Ссылка: IBAction внутри UITableViewCell не...
978 просмотров
schedule
01.04.2022
Как использовать реализацию интерфейса по умолчанию с kotlin Multiplatform и Swift
Я использую KMP для создания кроссплатформенного приложения как для Android, так и для iOS. Моя проблема в том, что когда я создаю интерфейс в общем основном основном Kotlin с реализацией по умолчанию, я не могу использовать эту реализацию в iOS, и...
304 просмотров
schedule
19.04.2022
Почему соответствие 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 просмотров
schedule
14.06.2022
Протокол может использоваться только как общее ограничение, потому что у него есть требования 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