我的脑袋要爆炸了 :) - 我一直试图从我的服务器获取一个 JSON 字符串到一个字典值,但我无法让它工作。
我正在尝试获取(从我的服务器 - 这是动态的,我希望我的应用能够在需要时从服务器中提取新数据):
{"1":"Location 1","2":"Location 2","3":"Location 3"}
使用 Swift 到 Xcode 中的这个字典:
var labels = [
1 : "Location 1",
2 : "Location 2",
3 : "Location 3"
]
这必须非常直截了当,但对于我的生活,我无法弄清楚......
这是我的 Swift - 我可以让它从服务器中提取信息,但我无法像我需要的那样将它放入字典中
var postEndpoint: String = "http://www.myserver.net/app/campus.php"
Alamofire.request(.GET, postEndpoint)
.responseJSON { (request, response, data, error) in
if let anError = error
{
println("error")
println(error)
}
else if let data: AnyObject = data
{
let post = JSON(data)
println(post)
}
}
这导致:
{
"1" : "Location 1",
"2" : "Location 2",
"3" : "Location 3"
}
我使用它的最终结果是具有以下代码的 iBeacon 实现:
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.Unknown }
if (knownBeacons.count > 0) {
let closestBeacon = knownBeacons[0] as CLBeacon
let locationID = post[closestBeacon.minor.integerValue]
self.locationLabel.text = locationID
self.view.backgroundColor = self.colors[closestBeacon.minor.integerValue]
}
我得到的错误是 self.locationLabel.text = locationID 'JSON' is not convertible to 'String',当我使用静态变量标签字典时,我没有收到这个错误。我是否试图错误地从服务器获取数据?我究竟做错了什么???我认为具有未声明类型的 var 标签允许 Swift 弄清楚它需要什么,我如何从 JSON 部分做同样的事情?