Ios Swift字典子类型

Ios Swift字典子类型,ios,swift,Ios,Swift,当涉及到使用字典和NSD字典时,我对Swift感到非常沮丧 我正在从服务器中提取数据。其中一个值是布尔值 我从一本Swift字典开始,出于沮丧而转到了NSDictionary。但是,我仍然无法从字典中获取值 以下所有操作均失败,并出现相互矛盾的错误: let unread:Bool = data!["unread"] as! Bool let unread:Bool = data?["unread"] as! Bool let unread:Bool = data?.objectForKe

当涉及到使用字典和NSD字典时,我对Swift感到非常沮丧

我正在从服务器中提取数据。其中一个值是布尔值

我从一本Swift字典开始,出于沮丧而转到了NSDictionary。但是,我仍然无法从字典中获取值

以下所有操作均失败,并出现相互矛盾的错误:

let  unread:Bool = data!["unread"] as! Bool
let  unread:Bool = data?["unread"] as! Bool
let  unread:Bool = data?.objectForKey("unread") as! Bool
let  unread:NSNumber = data?["unread"] as! NSNumber
错误:无法将类型为“NSTaggedPointerString”(0x110c1eae8)的值强制转换为“NSNumber”(0x10e0ab2a0)

好的,看起来数据是以字符串的形式输入的。。。让我们试试:

let unreadStr:String = data!["unread"] as! String
let unreadStr:NSString = data!["unread"] as! NSString
错误:无法将类型为“\uu nscfoolean”(0x1097413b8)的值强制转换为“NSString”(0x106bcdb48)

所以我很困惑。当我试图把它转换成布尔值时,它说我不能把字符串转换成数字。当我试图将其转换为字符串时,它会说我无法将数字转换为字符串

以下是数据的外观:

Optional({
    senderId = 10154040;
    sent = 1460844986973;
    text = "Test Message 1";
    unread = false;
})

你应该尝试以下几点:

let data: [String : Any] = ["first" : "test", "second" : 2, "third" : true]

let first = data["first"] as! String
let second = data["second"] as! Int
let third = data["third"] as! Bool

print(first)
print(second)
print(third)

这就是我从服务器转换数据的方式:如果让dict:NSDictionary=snapShot.value as?NSDictionary{let data=dict.allValues[0]as?NSDictionary是否是您的服务器向您发送了不一致的Bool表示—有时是字符串,有时是Bool?我刚刚连接了SwiftyJSON,现在一切都很好。您是如何从服务器中提取这些值的?是JSON吗?