2015-05-27 78 views
0

的值,然后出现错误“无法投射类型值”。当我打电话给web服务时,无法投射类型

var params: [String: String] = 
      ["udid": layout.udId, "email": emailtxt.text, "password": passtxt.text] 

      api.sendPostCall(params, url: "http://doxnation.com/api"){(success:Bool,reult: AnyObject) ->() in 

       if(success) { 
       } 
       else{ 
        println("Error HERE"); 
       } 
      } 

,这里是我的sendPostCall功能

func sendPostCall(params : AnyObject, url : String, postCompleted : (succeeded: Bool, result: AnyObject) ->()) { 
    var request = NSMutableURLRequest(URL: NSURL(string: url)!) 
    var session = NSURLSession.sharedSession() 
    request.HTTPMethod = "POST" 


    var err: NSError? 
    let data = (params as NSString).dataUsingEncoding(NSUTF8StringEncoding) // Error here 
} 

我不明白,我怎么能解决这个问题? 我也尝试

let data = (params as! NSString).dataUsingEncoding(NSUTF8StringEncoding) 
+0

在哪一行你得到这个错误? –

+0

let data =(params as NSString).dataUsingEncoding(NSUTF8StringEncoding)//错误在这里 – Haseeb

+2

你的参数是字典。但是你将它强制转换为NSString。 – Amit89

回答

0

我只需更换

let data = (params as NSString).dataUsingEncoding(NSUTF8StringEncoding) 

let data = NSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions(0), error: &err) 

,如果任何人有更好的解决方案,然后亲切地交流,请与我

感谢所有

相关问题