Ich habe eine Meta-Variable NSObject
in einem Viewcontroller, ich beabsichtige, in der Lage sein, jede Art von Objekt aus dem übergeordneten Viewcontroller, der es drückt. Ich habe auch eine Typvariable, die bestimmt, wie ich diese NSObject
innerhalb des Viewcontrollers typecast und interpretiere.Wie konvertiert man NSDictionary zu NSObject in Swift?
Das Problem ist, wenn ich versuchte, eine NSDictionary
in NSObject
in der Eltern, Xcode warnt, dass diese Art der Typumwandlung wird immer scheitern.
-Code, die ich versucht habe:
childVc.meta = ["title":"test"] as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
let data = ["title":"test"];
childVc.meta = data as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
let data = ["title":"test"];
childVc.meta = data as NSObject; // error: cannot convert value of type '[String:String?]' to type 'NSObject' in coercion.
let data = ["title":"test"] as! NSObject; // warning: cast from '[String:String?]' to unrelated type 'NSObject' always fails.
childVc.meta = data;
Aber das Gegenteil typecasting funktioniert immer:
let unwrappedMeta = self.meta as! NSDictionary;
Oh btw, ich weiß, dass rasche am Ende nicht Semikolon benötigt. Es ist nur meine Angewohnheit von obj-c und schnelle sieht so aus, als wäre es egal, also lasst uns dieses Semikolon nicht ablenken. :)
ein NSDictionary ist bereits ein NSObject ... haben Sie es nicht versucht Gießen? – Fonix
in jedem Fall, das ist ein schnelles Wörterbuch, kein NSDictionary, [versuchen Sie dies] (http://Stackoverflow.com/a/24173564/1219956) – Fonix
Warum kann ich das nicht reproduzieren? Ich habe eine Warnung bekommen, dass es immer gelingen wird! – Sweeper