寻找 Swift "ambiguous use of 'object(forKey:)'" 的修复

Looking for a fix for Swift "ambiguous use of 'object(forKey:)'"

我继承了一些我正在尝试编译的 Swift 代码。

以下两行生成“对象 (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 上发现了类似的问题,但 none 似乎解决了这个特定问题。我可能在搜索结果中遗漏了一些内容。

我希望这是一个简单的修复,因此我们将不胜感激。

一切都取决于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,则会出现编译错误。