У меня есть мета переменная NSObject
в viewcontroller, которую я намереваюсь получить, чтобы получить какой-либо объект из родительского контроллера представления, который его подталкивает. У меня также есть переменная типа, которая определит, как я определяю и интерпретирую этот NSObject
внутри viewcontroller.Как преобразовать NSDictionary в NSObject в Swift?
Проблема заключается в том, что я попытался нарисовать NSDictionary
в NSObject
в родительском коде, Xcode предупреждает, что тип приведения типов всегда будет терпеть неудачу.
код, который я пробовал:
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;
Но напротив типажей всегда работает:
let unwrappedMeta = self.meta as! NSDictionary;
О кстати, я знаю, что стриж не нужно точкой с запятой в конце. Это просто моя привычка от obj-c, и быстрый взгляд выглядит неважно, поэтому не позволяйте этой точке с запятой отвлекать нас. :)
NSDictionary уже является NSObject ... вы пробовали не отдать его? – Fonix
в любом случае, это быстрый словарь, а не NSDictionary, [попробуйте это] (http://stackoverflow.com/a/24173564/1219956) – Fonix
Почему я не могу воспроизвести это? Я получил предупреждение о том, что это всегда будет успешным! – Sweeper