2014-09-29 20 views
6

Stworzyłem następujące metody w moim kodu:Jak przekazać słownik jako parametr metody w Swift?

func SignIn(objDictionary:Dictionary<String,String>) 
{ 
    //Body of method 
} 

muszę przekazać następujące słownika jako parametr w tej metodzie, która jest zdefiniowana poniżej:

let objSignInDictionary:Dictionary = ["email":emailTextField.text, "password":passwordTextField.text] 

Jak mogę przekazać ten słownik w powyższa metoda jako parametr?

to należy zauważyć, że metoda ta jest w innej klasie i wzywam sposób tworząc swój przedmiot w następujący sposób:

let obj = Services() 

signin jest zdefiniowana w klasie Services.swift więc próbuję to nazwać jak

obj.SignIn(objSignInDictionary) 

ale coraz następującego błędu

"String!" is not identical to "String" 

Gdzie się mylę i jak można to naprawić. Utknąłem tu od kilku dni.

Odpowiedz

12

Jeśli klikniesz na alt + objSignInDictionary w Xcode, zobaczysz jego wywnioskowanie jako [String : String!]. Możesz to naprawić, jawnie ustawiając objSignInDictionary typ:

let objSignInDictionary:[String:String] = ["email":emailTextField.text, "password":passwordTextField.text] 
+0

Pracowałem dla mnie! :-) – Developer