zum nächsten Bildschirm weiter ein patron
muß eines von zwei Identifikatoren aufweisen. Der Code, den ich habe, dies zu tun ist:Swift-y Booleschen Ausdruck - Fall außerhalb if/Schalter
let identifier1Entered = !patron.identifier1.isEmpty
let identifier2Entered = patron.identifier2 != nil && !patron.identifier2!.isEmpty
guard identifier1Entered || identifier2Entered else { return }
Aber es ist nicht Swifty, ich bin Kraft-Abwickeln der optionalen identifier2
, weil ich nicht will diesen Messier zu einem längeren und IMO erweitern
var identifier2Entered = false
if let identifier2 = patron.identifier2 where !identifier2.isEmpty {
identifier2Entered = true
}
Was ich dachte funktionieren könnte nimmt nur den Ausdruck aus der if
Aussage wie:
let id2Entered = let identifier2 = patron.identifier2 where !identifier2.isEmpty
oder
let id2Entered = case .Some(let id2) = patron.identifier2 where !id2.isEmpty
Es scheint aber, dass diese Ausdrücke nur innerhalb von if
Anweisungen erlaubt sind. Die andere mehr Swifty Lösung dachte ich an, ist dies:
let identifier1Entered = !patron.identifier1.isEmpty
guard let id2 = patron.identifier2 where !id2.isEmpty || identifier1Entered
else { return }
Aber es erfordert, dass Bezeichner2 nicht gleich Null ist, was falsch ist, und soweit ich weiß, gibt es keine Möglichkeit, optional zu verwenden, mit ||
in if
Bindung oder guard
Aussagen. Ganz zu schweigen davon, dass ich denke, dass es weniger klar und lesbar ist als das Auspacken.
Wer hat eine klare, mehr Swifty Lösung?
doh! Liebe die erste Antwort – Austin