我试图从一个关联数组中获取“readerSession”,并将其放入一个变量中。这是我试过的。
代码

println(thevalue)

返回
{
    readerSession = 41;
    tax = 7;
    tax2 = 6;
    taxName = GST;
    taxName2 = PST;
}

所以readerSession等于41,现在让我看看是否可以得到它。
代码
println(thevalue["readerSession"])

返回可选(41)
好的,很好,正是我想要的,现在我试着把它放到一个变量中。
代码
var readerSession = thevalue["readerSession"] as? String ?? "0"
println("READER SESSION \(readerSession) ")

返回的读取器会话0
为什么是“0”??? 应该是“41”

最佳答案

得到"0"的原因是存储在关联数组中的值是一个Int,而不是一个String。因此,当您尝试强制转换到String时,强制转换返回空值,因此??的右侧启动,您将得到一个零字符串。
你可以这样解决:

var readerSession : AnyObject = thevalue["readerSession"] ?? "0"

10-07 15:46