Описание тега swift-protocols

Протоколы, специфичные для языка Swift
1 ответ

Как вы реализуете протокол UIAccessibility?

"Руководство по программированию специальных возможностей для iOS" гласит: Другой способ - реализовать метод isAccessibilityElement протокола UIAccessibility в реализации вашего пользовательского подкласса. Следующий фрагмент кода показывает, как эт…
06 июн '17 в 16:06
2 ответа

Невозможно преобразовать значение типа "AProtocol".Protocol в ожидаемый аргумент типа Protocol

Я пытаюсь создать протокол для NSXPCInterface и столкнулся со странной проблемой. Я создал протокол: public protocol AProtocol { //functions in here } и когда я хочу добавить его в exportedInterface NSXPCConnection, let newConnection: NSXPCConnectio…
29 сен '18 в 12:32
2 ответа

if-let Any для RawRepresentable<String>

Давайте предположим это: enum MyEnum: String { case value } let possibleEnum: Any = MyEnum.value if let str = stringFromPossibleEnum(possibleEnum: possibleEnum) Какой мой лучший вариант реализации stringFromPossibleEnum не зная имя типа enum? func s…
27 апр '17 в 19:10
0 ответов

Использовать исходную переменную класса в расширении, соответствующем протоколу

У меня есть ситуация, когда я хочу иметь возможность использовать существующее поле из класса, чтобы удовлетворить расширение класса, который определяет протокол. Что-то вроде этого: class SomeThing { var foo: String } protocol MyProtocol { var foo:…
12 июл '17 в 11:53
1 ответ

Не удается присвоить значение типа "MapViewController" типу "UberController?"

Поэтому я пытаюсь создать клон Uber с помощью Firebase, но у меня все время появляется ошибка MapViewController это мой код: import UIKit import MapKit import CoreLocation class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManag…
1 ответ

Объявить функцию протокола со значениями аргументов по умолчанию

Я хочу, чтобы эта функция была в протоколе: func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)-&gt;())? = nil) { // do some stuff } Но когда я пишу такой протокол: protocol SomeDelegate { func slideToRight(…
1 ответ

Тип расширения протокола Self не соответствует типам инициализатора

Скажем, для академических целей я бы предпочел выражение как someInt.asDouble а не сток Double(someInt) Поскольку все различные целочисленные типы Swift соответствуют IntegerType протокол И потому что, кажется, есть Double() инициализатор, который п…
1 ответ

Как я могу использовать тип (of: someVar) как правильный тип в Swift?

Как я могу использовать type(of: someVar) как правильный тип в Swift? Предположим, у меня есть некоторый общий протокол. protocol Decryptable: Decodable { var cipher: Cipher } protocol Requestable { associatedtype T var schema: T } protocol Service …
0 ответов

Я не могу передать значения через протокол в swift

Мне нужно передать значение от ScheduleViewController из выберите метод строки MySchedularViewController настольная ячейка. Вот мой протокол protocol ScheduleViewControllerDelegate { func mySchedule(imgIcon: [String], proName: [String], proTime: [St…
07 сен '18 в 09:43
1 ответ

Расширение протокола в Свифт 3

Я хочу иметь свойство по умолчанию UIImageView, который был бы isFlipped, Я могу сделать это путем подклассов UIImageView и добавление одного свойства isFlipped, Но я хочу использовать пользовательский протокол и расширения для этого, но через некот…
19 май '17 в 06:44
1 ответ

Что происходит в Swift, когда протокол вынужден наследовать от класса?

Первый: код ошибки: class AA { } protocol Action where Self: AA { func method1() func method2() } extension Action { func method1() { print("method1") } } class List: AA, Action { func method2() { print("List method2") } } class Detail: AA, Action {…
15 июн '18 в 01:58
1 ответ

Swift 3. Cast Любой класс, который соответствует определенному протоколу.

У меня есть случайный протокол в качестве примера protocol testP { init(param1: String) } И у меня есть класс, который принимают Any в качестве параметра в качестве примера: class testC { var aClass: Any } Как я могу проверить, если aClass соответст…
11 мар '17 в 09:37
2 ответа

Ограничить связанный тип

Упрощенная версия моего кода, которая показывает проблему: protocol Transformer { typealias Input typealias Output func transform(s: Input) -&gt; Output } protocol InputType {} protocol OutputType {} extension Int: OutputType {} extension String: In…
10 янв '16 в 12:27
2 ответа

Как определить необходимые функции делегата?

Как мне узнать, какие функции должны быть реализованы классом для соответствия протоколу? Например FBSDKAppInviteDialogDelegate требует appInviteDialog: didCompleteWithResults а также appInviteDialog:didFailWithError:, Xcode только выдает ошибку без…
17 июн '16 в 18:29
2 ответа

В swift, как мне вернуть объект того же типа, который соответствует протоколу

У меня есть следующий протокол protocol JSONInitializable { static func initialize(fromJSON: NSDictionary) throws -&gt; Self? } Теперь я пытаюсь заставить эту функцию возвращать любой класс, соответствующий протоколу. Т.е. если у меня есть класс Foo…
28 мар '16 в 22:38
1 ответ

Возврат двух типов из одной функции с использованием соответствия протокола

protocol PriceCalculatable {} extension Int : PriceCalculatable {} extension Double : PriceCalculatable {} class PriceCalculator { static func culculateFinalPrice&lt;T: PriceCalculatable&gt;(for products: [Product], applying coupon: Coupon?) -&gt; T…
19 июл '18 в 09:16
1 ответ

Невозможно объявить расширение публичного протокола с внутренними требованиями

Я программирую приложение для медиаплеера и создал собственную структуру для управления всеми функциями плеера. В этом контексте у меня есть публичный протокол под названием PlayerControllerType и внутренний протокол _PlayerControllerType, В PlayerC…
3 ответа

Протокол Swift для возврата словаря селектора

Я пытаюсь создать протокол, где один из методов вернет словарь селектора. Но я сталкиваюсь с проблемой... вот код протокола: @objc public protocol MazeProtocol: AnyObject { @objc static func configurations() -&gt; [String:Selector] } и вот ошибка ко…
23 ноя '18 в 14:16
1 ответ

Протокол, соединяющий NSMutableSet и NSMutableOrderedSet вместе

В Swift 3 я хотел бы иметь возможность создавать протокол, который позволяет мне добавлять элементы и перебирать, используя for element in, Протокол должен работать на обоих NSMutableSet а также NSMutableOrderedSet (поскольку они не наследуются от о…
1 ответ

Попытка вызвать селектор статической функции в Swift

Я пытаюсь добиться следующего, но сталкиваюсь с проблемами:-) создайте протокол, который UIViewController и подкласс UIView могут принять, который содержит один статический метод, который будет вызван для этого класса (вызовите егоconfiguration Зате…
27 ноя '18 в 15:00