#swift #anyobject
#swift #anyobject
Вопрос:
Я унаследовал некоторый код Swift, который пытаюсь скомпилировать.
Следующие две строки генерируют ошибку «Неоднозначное использование object (forKey :)».
let selectorString: String = (req as AnyObject).object(forKey: "selectorString") as! String
let args = (req as AnyObject).object(forKey: "arguments") as! NSArray
Ошибка выделяется req as AnyObject
как виновник.
Я обнаружил похожие проблемы в S.O., но, похоже, ни одна из них не решала эту конкретную проблему. Возможно, я что-то пропустил в результатах поиска.
Я надеюсь, что это простое исправление, поэтому любая помощь приветствуется.
Комментарии:
1. Каков тип объекта req перед приведением к AnyObject?
Ответ №1:
Все зависит от того, что req
есть. Если это что-то, что может быть приведено как AnyObject и на что реагирует object(forKey:)
, ваш код компилируется и запускается. Например:
let req : [String:Any] = ["selectorString":"hey", "arguments":["ho"]]
let selectorString: String = (req as AnyObject).object(forKey: "selectorString") as! String
let args = (req as AnyObject).object(forKey: "arguments") as! NSArray
Однако, если req
невозможно преобразовать в AnyObject, вы получите ошибку компиляции.
Комментарии:
1. Также это может зависеть от того, какую версию Swift вы используете.