Als «swift-protocols» getaggte Fragen

Für die Swift-Sprache spezifische Protokolle




3
Protokoll passt sich nicht an?
Warum wird dieser Swift-Code nicht kompiliert? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] { return [] } } let result : [S] = arr.test() Der Compiler sagt: "Typ Pentspricht nicht dem …

2
Was bedeutet "Protokoll ... kann nur als generische Einschränkung verwendet werden, weil es Selbst- oder zugehörige Typanforderungen hat"?
Ich versuche, ein Wörterbuch (eigentlich ein HashSet ) zu erstellen, das auf einem benutzerdefinierten Protokoll in Swift verschlüsselt ist , aber es gibt mir den Fehler im Titel: Das Protokoll 'myProtocol' kann nur als generische Einschränkung verwendet werden, da es Self- oder zugehörige Typanforderungen hat und ich kann weder Kopf …

3
Die Nicht-Methode '@ objc' erfüllt nicht die optionale Anforderung des Protokolls '@objc'
Überblick: Ich habe ein Protokoll P1, das eine Standardimplementierung einer der optionalen Objective-C-Funktionen bietet. Wenn ich eine Standardimplementierung der optionalen Funktion bereitstelle, wird eine Warnung angezeigt Compiler Warnung: Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate' Ausführung: Swift: 3 Xcode: 8 (Veröffentlichung) Versuche gemacht: Versucht hinzuzufügen …

5
Wie kann ich in Swift eine Variable eines bestimmten Typs deklarieren, die einem oder mehreren Protokollen entspricht?
In Swift kann ich den Typ einer Variablen explizit festlegen, indem ich ihn wie folgt deklariere: var object: TYPE_NAME Wenn wir noch einen Schritt weiter gehen und eine Variable deklarieren möchten, die mehreren Protokollen entspricht, können wir das protocolDeklarativ verwenden: var object: protocol<ProtocolOne,ProtocolTwo>//etc Was ist, wenn ich ein Objekt deklarieren …

15
Wie kann man eine Aufzählung an ein Protokoll in Swift anpassen?
Die schnelle Dokumentation besagt, dass Klassen , Strukturen und Aufzählungen alle Protokollen entsprechen können, und ich kann zu einem Punkt gelangen, an dem sie alle übereinstimmen. Aber ich kann die Aufzählung nicht dazu bringen , sich ganz wie die Klassen- und Strukturbeispiele zu verhalten : protocol ExampleProtocol { var simpleDescription: …

4
"Schwerwiegender Fehler: Array kann nicht von Objective-C überbrückt werden" - Warum versuchen Sie es überhaupt, Swift?
Ich habe ein Swift-Protokoll deklariert: protocol Option { var name: String { get } } Ich erkläre mehrere Implementierungen dieses Protokolls - einige Klassen, einige Aufzählungen. Ich habe einen Ansichts-Controller mit einer Eigenschaft, die wie folgt deklariert ist: var options: [Option] = [] Wenn ich versuche, diese Eigenschaft auf ein …

5
Das Protokoll kann nur als generische Einschränkung verwendet werden, da es Self- oder AssociatedType-Anforderungen hat
Ich habe ein Protokoll RequestType und es hat zugeordnetes Typmodell wie unten. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result<Model, NSError> -> Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response<Model, NSError>) -> Void in …



3
Warum kann ich das eingelassene Protokoll in Swift nicht verwenden?
Ich habe Zweifel an Protokollen in Swift über die Verwendung von var und den Schlüsselwörtern {get set} . Aus der Apple-Dokumentation : Wenn ein Protokoll erfordert, dass eine Eigenschaft abrufbar und einstellbar ist, kann diese Eigenschaftsanforderung nicht durch eine konstant gespeicherte Eigenschaft oder eine schreibgeschützte berechnete Eigenschaft erfüllt werden. Wenn …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.