Ich möchte eine Erweiterung schreiben, die eine komplexe Filterung auf meinem Results
Objekt vereinfacht. Ich versuchte dies:Wie schreibe ich eine Realm Results Objekt Erweiterung
extension Results where T:MyProtocol {
func filterEnabled() -> MyProtocol {
return self.filter("type == 1").filter { $0.enabled == true }
}
}
XCode gibt mir diese Fehlermeldung: Ambiguous reference to member 'filter'
. Ich denke, T:MyProtocol
Einschränkung ist nicht genug.
Wie kann ich erreichen, was ich versuche?
Ich machte einen viel komplizierteren Filter auf den zweiten Teil. Einfach für die Frage vereinfacht. Danke trotzdem. Durch das Korrigieren des Rückgabetyps wurde der Fehler nicht behoben. Ein weiterer Fehler war, dass '$ 0' keine 'enabled' Eigenschaft hatte. Beides musste behoben werden, um die "viel weniger verwandte" Fehlermeldung zu beheben. XCode sollte mir zuerst geben "$ 0 hatte nicht aktiviert", und danach "Rückgabetyp passt nicht" – osrl
Oh okay, macht sene. Ich wollte nur sicher sein, dass Sie sich der Implikationen bewusst sind. In solchen Fällen hilft es oft, den Swift-Compiler anzudeuten, indem Sie den Ausdruck aufteilen und explizite Typen deklarieren, aber das kann mühsam sein. – marius
Ja, es ist langweilig. Hoffentlich werden sie diese eines Tages beheben – osrl