Моя голова взорвется :) - Я пытался получить строку JSON с моего сервера в значение словаря, и я не могу заставить ее работать.
Я пытаюсь получить (с моего сервера - он динамический, и я хочу, чтобы мое приложение могло при необходимости извлекать новые данные с сервера):
{"1":"Location 1","2":"Location 2","3":"Location 3"}
К этому словарю в Xcode с использованием Swift:
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» не может быть преобразован в «String», я не получаю эту ошибку, когда использую словарь статических меток var. Я пытаюсь получить данные с сервера неправильно? Что я делаю не так??? Я думаю, что метки var с необъявленным типом позволяют Swift понять, что ему нужно, как мне сделать то же самое из части JSON?