我从我的应用程序向服务器发出POST请求,并获得jsonString作为响应。我已经创建了将字符串转换为字典的函数,如下所示:
func convertStringToDictionary(text: String) -> [String:AnyObject]? {
if let data = text.dataUsingEncoding(NSUTF8StringEncoding) {
do {
return try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:AnyObject]
} catch let error as NSError {
print(error)
}
}
return nil
}
从服务器获取响应后,我按字符串将字符串转换为字典,然后我想检查用户是否已登录:
let result = convertStringToDictionary(jsonString as String)
if (result!["loggedIn"] == "1")
{
print("You are logged in!")
}
然后我得到错误"无法转换AnyObject类型的值?预期参数String"。我想如果我想将它与字符串进行比较,我必须将AnyObject类型的变量转换为String。我已经尝试了我在Google上找到的所有选项,但我没有让它工作。
答案 0 :(得分:1)
因为结果是[String : AnyObject]
类型的字典,所以从中提取的值将被输入为AnyObject?
,==
的{{1}}没有有效的运算符重载}。您需要将提取的值转换为String
,然后才能将其与" 1"进行比较。
你可能想要的是:
String
请注意,如果您的JSON具有" loggedIn" field as Integer,如:
if let result = convertStringToDictionary(jsonString as String),
loggedIn = result["loggedIn"] as? String
where loggedIn == "1" {
print("You are logged in")
}
您希望将loggedIn强制转换为Integer,而不是String。
答案 1 :(得分:0)
您必须告诉编译器预期的类型是var timeline = document.querySelector(<selector for your timeline tag>);
timeline.classList.add('active');
String