Описание тега protocol-extension
5
ответов
Swift сделать расширение протокола наблюдателем уведомлений
Давайте рассмотрим следующий код: protocol A { func doA() } extension A { func registerForNotification() { NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardDidShow:"), name: UIKeyboardDidShowNotification, object: ni…
08 окт '15 в 17:40
1
ответ
Ошибка "Не соответствует протоколу" при расширении другого класса
Я пытаюсь проверить свой собственный класс, вводя объекты, которые адаптируют URLSession а также URLSessionDataTask протоколы. Я расширяю NSURLSession а также NSURLSessionDataTask принять эти протоколы, чтобы я мог нормально использовать существующи…
11 авг '15 в 18:05
1
ответ
Ошибка сегментации 11 для именования функций в расширении протокола
Проблема действительно проста. Это вызывает ошибку сегментации: extension Sequence { func parallelForEach<T, R>(_ f: @escaping (T) -> R, completion: @escaping ([R]) -> ()) where Iterator.Element == T { } } Очевидно, я больше не знаю, как…
18 дек '16 в 12:06
1
ответ
Неоднозначные функции в нескольких расширениях протокола?
У меня есть несколько протоколов, которые имеют одинаковое имя функции. Некоторые протоколы имеют связанные типы, и я не могу понять, как вызывать функции, как в неуниверсальных протоколах. Я получаю ошибку: Protocol 'MyProtocol1' can only be used a…
25 апр '16 в 13:02
1
ответ
Класс не соответствует протоколу с расширением, содержащим реализацию по умолчанию
В настоящее время я прорабатываю курс Treehouse IOS Swift, и мы создаем приложение для погоды. Я дошел до того, что постоянно получаю сообщение об ошибке, что мой класс не соответствует моему протоколу, но я не могу понять, почему. Вот моя деклараци…
07 окт '16 в 07:07
1
ответ
Как установить делегат в расширении протокола
У меня есть несколько контроллеров представления, которые показывают один и тот же вид ячеек. Я хочу установить делегат в расширении протокола следующим образом: class ProductsViewController: UIViewController, ProductShowcase { //other properties @I…
21 апр '16 в 18:24
1
ответ
Прерывание прерывания: 6 в расширении протокола с определениями typealias
У меня есть следующий код, который компилируется и запускается в Xcode 9.2 Standard Build System и swift build -c release но не компилируется и дает abort trap: 6 когда строить проект с New Build System (Preview) или же swift build import Foundation…
15 дек '17 в 18:19
1
ответ
Диспетчеризация статических методов расширения протокола Swift с использованием суперкласса и подкласса
У меня похожая, но немного другая проблема, описанная в: Диспетчеризация метода расширения протокола Swift с суперклассом и подклассом. Проблема связана со статическими методами на протоколах. У меня есть следующий код: protocol Protocol: class { st…
10 июн '16 в 10:16
3
ответа
Расширение протокола Swift с AssociatedType, ограниченным коллекцией, не может использовать нижний индекс
Я пытаюсь написать протокол, который соответствует протоколу коллекции, и он имеет связанный тип - объект и объект свойства. protocol DDCDataSource: Collection { associatedtype Object var object: Object {get set} } Я хочу добавить некоторые функцион…
09 сен '17 в 08:10
2
ответа
Методы расширения протокола не вызываются, когда протокол расширяет существующий протокол Apple API
Я хочу, чтобы протокол унаследовал от протокола Apple UIViewControllerTransitioningDelegate добавьте дополнительные требования к протоколу и предоставьте реализацию по умолчанию для некоторых методов в этом протоколе. Когда я это делаю, методы не вы…
12 июн '16 в 04:06
1
ответ
Метод в расширении протокола вызывается вместо реализации метода в View Controller
Поэтому у меня есть viewController, который содержит пользовательский вид, и этот класс viewController соответствует ViewProtocol Я ожидаю когда someAction метод срабатывает в someCustomizedView это будет печатать " method in otherCustomizedClass ca…
01 июн '18 в 07:40
0
ответов
Расширения протокола доступа с обобщениями, объявленными в платформе
Можем ли мы получить доступ к расширениям протоколов, реализованным в платформе вне рамок? Я имею в виду, предположим, что есть цель, скажем, "Framework", в которой я объявил протокол и реализовал расширение протокола. Теперь, если я пытаюсь получит…
04 июн '18 в 19:11
2
ответа
Протоколно-ориентированное расширение модуля init дважды
Здесь ситуация. У меня есть протокол и его расширение. protocol CustomViewAddable { var aView: UIView { get } var bView: UIView { get } func setupCustomView() } extension CustomViewAddable where Self: UIViewController { var aView: UIView { let _aVie…
13 янв '17 в 03:01
1
ответ
Как вызвать реализацию расширения протокола по умолчанию с ограничениями типов
Рассмотрим следующий пример: class ManObj { func baseFunc() { print("ManObj baseFunc") } } class SubObj: ManObj { } protocol Model { } extension Model { // This is protocol extension func someFunc() { // Protocol extension default implementation (se…
18 мар '17 в 15:11
2
ответа
Быстрое правильное использование расширения протокола
Привет, я пытаюсь извлечь часть кода для повторного использования. Мой подход использует Protocol а также Protocol Extension вместо общего BaseClass, Я должен создать рев protocol а также protocol extension protocol MovieDisplay { var collectionView…
28 ноя '18 в 18:14
4
ответа
Добавление Target-Action в расширение протокола завершается неудачно
У меня есть набор контроллеров представления, которые будут иметь кнопку строки меню. Я создал протокол для этих viewControllers для принятия. Кроме того, я расширил протокол для добавления функций по умолчанию. Мой протокол выглядит так, protocol C…
25 ноя '15 в 14:23
2
ответа
Почему я получаю сообщение об ошибке "Протокол… может использоваться только как общее ограничение, потому что он имеет Self или требования к связанному типу"?
Я написал расширение на Int как ниже. extension Int { func squared () -> Int { return self * self } } print(10.squared()) // works Приведенный выше код работает. Теперь я хочу продлить IntegerType протокол, так что Int, UInt, Int64 и т. д. будет …
05 сен '16 в 23:18
2
ответа
Быстрое расширение дженериков для нескольких классов
Поэтому я хочу добавить общее расширение для NSNumber,Int,Double и Float, где значение преобразуется в форматированную строку. Я начал с создания собственного протокола: protocol MyFormatConvertible { var toMyFormat: String { get } } extension NSNum…
21 ноя '17 в 07:36
2
ответа
Расширение протокола по протоколу ObjC
У меня есть протокол Objective C, который используется в основном объектами C и одним или двумя объектами Swift. Я хотел бы расширить протокол в Swift и добавить 2 функции. Один для регистрации уведомления, а другой для обработки уведомления. Если я…
16 авг '16 в 17:19
3
ответа
Расширьте протокол UICollectionViewDataSource для добавления реализаций по умолчанию
У меня есть довольно большое приложение, которое имеет много просмотров коллекций. Большинство представлений коллекции имеют одинаковые реализации для источника данных и делегата компоновки потока (одинаковые размеры, поля и т. Д.). Я пытаюсь создат…
08 окт '15 в 09:00