2016-11-19 10 views
17

Mam błąd podobny do tego "Wyrażenie niejawnie wymuszone z" String "? Dowolny”to jest mój kod:Wyrażenie niejawnie wymuszone na wyrażeniu "String"? to Any

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

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

    return true 
} 

błąd w tej linii

 print(user?.email) 

I

print(error?.localizedDescription) 

Proszę mi pomóc

Odpowiedz

18

Funkcja print wymaga zestawu Any parametrach . String to Any. W tym przypadku Xcode mówi ci, że niejawnie wymusił opcjonalny ciąg na obiekcie Any (przekształcając wartość String w Optional(value)).

Aby uniknąć tego ostrzeżenia, można po prostu użyć wartości domyślnej lub rozpakować String?

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

Co się stanie, to użytkownik jest zerowa w drugiej linii? – probrandono

+2

Aplikacja oczywiście zawiesi się. Ale po moim wyjaśnieniu o Opcjonalnym myślę, że to było niejawne –

Powiązane problemy