how to convert this objc to swift -


how fix error

func loginmobilephone(phone : string , password : string , withblock block : ((result:nsdictionary , error: nserror)-> void)!)     {          var params : anyobject!  = ["username" :phone,"passwd": password, "session_id" : constant.instance().session]          var path : string! = "/account/common/login";         networkmanager.sharedclient().postpath(path, parameters: params, withblock: block)         networkmanager.sharedclient().postpath(<#path: string!#>, parameters: <#[nsobject : anyobject]!#>, withblock: <#(([nsobject : anyobject]!, nserror!) -> void)!##([nsobject : anyobject]!, nserror!) -> void#>)        } 

error :

cannot invoke 'postpath' argument list of type '(string!, parameters: anyobject!, withblock: ((result: nsdictionary, error: nserror) -> void)!)'

or how convert swift

+(void)loginmobilephone:(nsstring *)phone password:(nsstring *)password withblock:(void (^)(nsdictionary *, nserror *))block{     nsdictionary *params = @{@"username" : phone,                              @"passwd" : password,                              @"session_id":[[constant instance] session]                              };     [[networkmanager sharedclient] postpath:apiuserlogin parameters:params withblock:block]; } 

params should dictionary [nsobject : anyobject] instead of anyobject!.

try this:

let params: [nsobject : anyobject] = ["username" : phone, "passwd" : password, "session_id" : constant.instance().session] 

and change method parameters

func loginmobilephone(phone: string, password: string, withblock block: ((result: [nsobject : anyobject] , error: nserror)-> void) ) {     // ... code } 

Comments