2015-09-13 66 views
0

因此,下面的代码基本上试图将类型(String,String)的字典作为JSON对象传递给我的服务器。我收到错误: 参数类型'[String:String?]'不符合预期类型'AnyObject'。我在调用NSJSONSerialization的那一行收到了这个错误,并且字典的名字被强调并且被认为是造成这个问题的原因。Swift 2.0 JSON字典问题

我不知道如何继续或更改代码。我试图在VAR decleration的末尾添加“作为解释”,但似乎并没有能够字典转换成该类型

任何帮助,将不胜感激

var param = ["TeacherID":"1000", "Name":self.firstName.text, "PhoneNo":self.phoneNumber.text, "Email":self.email.text, "Nationality":nationaility, "Gender":self.gender.text, "Type":"True", "HighestQualification":self.heq.text, "CurrentlyWorking":"True", "CurrentlyStudying":"False"] 


    let request = NSMutableURLRequest(URL: NSURL(string: "http://1.1.1.1:8080/signup")!) 

    let session = NSURLSession.sharedSession() 
    request.HTTPMethod = "POST" 
    request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
    request.addValue("application/json", forHTTPHeaderField: "Accept") 

    do { 
     request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(param, options:[]) 
    } catch { 
     print(error) 
     request.HTTPBody = nil 
    } 

回答

2

错误消息表示字典中有可选字符串。

...类型 '[字符串:字符串]'

在字典中的任何键和任意值不能nil
确保可选字符串已解包。

0

我有同样的问题。只需为每个字符串值添加“感叹号”即可正确打开它们。像这样:

var param = ["TeacherID":"1000", "Name":self.firstName.text!, "PhoneNo":self.phoneNumber.text!, "Email":self.email.text!, "Nationality":nationaility, "Gender":self.gender.text!, "Type":"True", "HighestQualification":self.eq.text!, "CurrentlyWorking":"True", "CurrentlyStudying":"False"] 
+0

if self.firstName.text ==零应用程序将简单地崩溃... – user3441734