swift - 表达式从 'String?' 隐式强制转换为 Any

标签 swift string option-type

<分区>

我有这样的错误“表达式从 String? 隐式强制转换为 Any”,这是我的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    FIRApp.configure()
    FIRAuth.auth()?.signIn(withEmail: "myemail@gmail.com", password: "mypassword", completion: { (user, error) in
        if (error != nil) {
            print(user?.email)
        }else {
            print(error?.localizedDescription)
        }
    })

    return true
}

这行错误

print(user?.email)

print(error?.localizedDescription)

请帮帮我

最佳答案

print 函数需要一组Any 参数。 String 是一个 Any。在这种情况下,Xcode 告诉您它隐式地将可选字符串强制转换为 Any 对象(通过将 String 值转换为 Optional(value) ).

要避免此警告,您可以简单地使用默认值或解包 String?

print(user?.email ?? "User instance is nil")
print(user!.email)

关于swift - 表达式从 'String?' 隐式强制转换为 Any,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691184/

相关文章:

Swift 方法参数,集合中的任意字符串

ios - 在带有图像和标签的表格 View 中选择一行在被选中时仅给出标签文本

字符串字面值未被解释为字符串类型

swift - 如何在swift中理解for循环中optionals的模式匹配

haskell - 编写此代码的更短方法

Java 8 嵌套 null 检查列表中映射中的字符串

ios - 使用 swift 在大量 map 上的 xcode 中构建时间极长

c - 在二维数组中打印字符串的各种构象

c# - 解析空格分隔文本的最佳方法

objective-c - 在 Objective-C 中使用 Swift 下标