在Swift中将JSON数组转换为Int数组

时间:2015-06-04 16:27:07

标签: arrays swift

这可能是一个愚蠢的问题,但尽管在StackOverflow上挖掘了这些问题,我似乎无法找到符合我困境的用例。

也就是说,我从REST服务中提取了一些数据,这些数据将一些历史数据作为JSON吐出;

[
    {
    "city": "New York",
    "historicalTemps": "98.46,71.81,76.58,82.38,91.08",
    "timestamp": "2015-06-04 10:20:34",
    }
]

我能够在我的iOS应用程序中解析我的数据,并将historyTemps设置为String。然而,我失败的地方是弄清楚如何将这个以逗号分隔的字符串转换为Int数组,以便它可以填充我的图形。这就是我停滞不前的地方;

var arr = historicalTemps.componentsSeparatedByString(",")
println(arr)
//Prints [98.46,71.81,76.58,82.38,91.08] as I would want.

然而,我试图找出如何将这个String数组转换为Int数组的尝试让我失望。有什么可能的建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

componentsSeparatedByString是一种NSArray方法。因此,您只需要调用.intValue来获取字符串的整数表示。

请注意,您需要为数组的每个元素调用.intValue

答案 1 :(得分:0)

尝试以下方法:

let str = "98.46,71.81,76.58,82.38,91.08"
let arr = split(str) { $0 == "," }
let nums = map(arr) { ($0 as NSString).doubleValue }

println(nums) // [98.46, 71.81, 76.58, 82.38, 91.08]