Ich arbeite mit etwas dazu bagatellisiert:Wie überprüfe ich korrekt auf einen erfolgreichen Downcast zu AnyObject?
func isAnyObject<T>(someObject: T) {
if let object = someObject as? AnyObject {
// do something
} else {
// do something else
}
}
die mir die Compiler-Warnungen gibt:
- Bedingte Umwandlung von 'T' auf 'ANYOBJECT' immer
- Nicht optional erfolgreich Ausdruck des Typs 'AnyObject' in einer Prüfung für Optionale
Ich verstehe, warum die Besetzung immer gelingt, aber ich weiß nicht, was ich tun soll, um es zu reparieren. Ich habe versucht, Zeile 2 zu if let object = foo as AnyObject?
ändern, aber wenn ich eine Struktur durch die Funktion übergeben, wird es immer noch in den 'Wenn' Block. Was fehlt mir hier?
Warum gießt du überhaupt? – Alexander
P.s., schreiben Sie nicht '-> Void' in Funktionssignaturen. – Alexander
Hoppla. Ich weiß nicht, ob ich den Zweck der Besetzung vollständig verstehe, aber für meine eigenen Absichten sehe ich nur, was es braucht, damit ein Strukturobjekt übergeben wird und dass es den Block "sonst" trifft. – Steals