1

此代码给出警告“表达式从'字符串隐式强制?' 去任何。”

let email : String?;
let password : String?;
let dict = ["email": email, "password": password] as [String: Any];

但是这段代码没有。

let email : String?;
let password : String?;
let dict = ["email": email, "password": password] as [String: AnyObject];

为什么?我怎样才能做到这Any一点不会让我对可选选项发出警告AnyObject

编辑:

此代码也不会发出警告:

let email : String;
let password : String;
let dict = ["email": email, "password": password] as [String: Any];

但在这种情况下,我需要能够同时包含对象和可选性。似乎只有当变量类型既是对象是可选时才会出现警告。

4

1 回答 1

0

根据Swift 语言指南,当您将 optional 转换为 Any 时,您应该会收到警告(请参阅页面底部的注释)。Any您可以通过将可选值转换为如下所示来消除警告。

let email : String?;
let password : String?;
let dict = ["email": email as Any, "password": password as Any] as [String: Any];
于 2018-02-06T08:36:04.523 回答