Dies ist der Fall:Assign Liste der variadische Parameter Variable
public enum NodeFeature: UInt16 {
case relay = 0x01
case proxy = 0x02
case friend = 0x04
case lpn = 0x08
}
public struct NodeFeatures {
public let rawValue: UInt16
public init(rawValue: UInt16) {
self.rawValue = rawValue
}
public init(features: NodeFeature...) {
var rawValue = UInt16(0)
for feature in features {
rawValue |= feature.rawValue
}
self.rawValue = rawValue
}
public func hasFeature(_ feature: NodeFeature) -> Bool {
return rawValue & feature.rawValue > 0
}
}
Und das ist eine Antwort vom Server:
"feature": {
"relay": true,
"proxy": false,
"friend": false,
"lowPower": false
}
Jetzt brauche ich eine Instanz von NodeFeatures
mit nur true
Werte zu schaffen :
Aber der Fehler folgt:
Wert kann nicht vom Typ umwandeln "[NodeFeature] Typ erwartete Argument‚NodeFeatures‘
Versuch init zu ändern (Features: Feature ...) (Funktionen init: [Feature]). Sie initialisieren mehrere Enum-Cases anstelle von Single. –
Nein, das ist nicht der Fall, ich muss es von der anderen Seite vorbereiten :) Das Argument im Initialisierer stammt vom SDK ... –
Kannst du mehr Infos geben? Was machst du genau mit init() part.The Fehler ist klar, dass der Argumenttyp nicht übereinstimmt. –