我需要我的标记来保存一些数据(不仅仅是位置,代码段和标题,它们已经在使用中)。我创建了一个字典,然后将marker.userData
设置为此字典。但是,我在从字典中取回值时遇到问题。任何帮助将不胜感激。
var mapDict : [String : Bool] = [ "Accredited" : self.accredited,
"Accepts Infants" : self.acceptsInfants,
"Accepts Preschool" : self.acceptsPreschool,
"Accepts Schoolbag" : self.acceptsSchoolage,
self.slug.last! : false]
marker.userData = mapDict
然后我使用
func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool {
println(marker.userData)
}
我得到了(这是正确的数据)
{
"Accepts Infants" = 0;
"Accepts Preschool" = 1;
"Accepts Schoolage" = 0;
Accredited = 0;
"little-steps" = 0;
}
但是,我无法弄清楚如何单独访问每个值以将其显示给用户。问题似乎是userData
是AnyObject
而不是Dictionary
(并且不能作为字典,字符串等向下转发)。
答案 0 :(得分:1)
你可以做一个条件来获取一个字典,
if let dict = userData as? [string:Int] {
//dict is now a Dictionary
} else {
// something went wrong with the cast
}
我在手机上,对不起这种格式。
答案 1 :(得分:0)
var dict = ["a": true, "b": false]
func f(userdata: AnyObject) {
print(userdata)
if let dict = userdata as? Dictionary<String,Bool> {
print(dict)
}
}
f(dict)
{
a = 1;
b = 0;
}
["b": false, "a": true]