weakReferenzen scheinen in Swift nur zu funktionieren, wenn a protocolals deklariert ist@objc , was ich in einer reinen Swift-App nicht möchte. Dieser Code gibt einen Kompilierungsfehler aus ( weakkann nicht auf Nicht-Klassentypen angewendet werden MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } Ich muss dem …
Ich möchte eine Klasse erstellen, die Objekte speichern kann, die einem bestimmten Protokoll entsprechen. Die Objekte sollten in einem typisierten Array gespeichert werden. Gemäß der Swift-Dokumentation können Protokolle als Typen verwendet werden: Da es sich um einen Typ handelt, können Sie ein Protokoll an vielen Stellen verwenden, an denen andere …
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 …
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 …
Ü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 …
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 …
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: …
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 …
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 …
Gibt es eine Standardmethode, um in Swift eine "reine virtuelle Funktion" zu erstellen, d. H. einer, der muss von jeder Unterklasse außer Kraft gesetzt werden, und die, wenn sie es nicht, eine Kompilierung Fehler verursacht ist?
Ich habe ein Protokoll P, das eine Kopie des Objekts zurückgibt: protocol P { func copy() -> Self } und eine Klasse C, die P implementiert: class C : P { func copy() -> Self { return C() } } Ob ich jedoch den Rückgabewert setze, Selferhalte ich den folgenden …
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.