我的单身人士位置管理员会在{{ 'id = ' ~ person._id }}
:
locationManager(_:didUpdateLocations:)
通过上述通知发布,我收到...
NSNotificationCenter.defaultCenter().postNotificationName("LocationUpdate", object: self, userInfo: ["currentLocation": currentLocation,
"currentLocationPoints": currentLocationPoints])`
...
部分的以下错误:
userInfo
因此我进行了以下类型的转换:
Value of type 'CLLocationCoordinate2D! does not conform to expected dictionary value type 'AnyObject'`
这次我在运行时遇到以下错误:
userInfo: ["currentLocation": currentLocation as! AnyObject,
"currentLocationPoints": currentLocationPoints as! AnyObject]
为什么铸造失败?我知道Could not cast value of type '__C.CLLocationCoordinate2D' (0xbb1f0) to 'Swift.AnyObject' (0x312d074).
和Any
之间的区别AnyObject
不能是枚举,但AnyObject
应该适合投射。
答案 0 :(得分:2)
CLLocationCoordinate2D
是struct
,不符合AnyObject
协议。因此它不能存储到字典中。
可能的解决方案是分别发布Double
和latitude
的{{1}}值。
另一种解决方案是链接到longitude
并使用MapKit.framework
的扩展名(符合NSValue
)
组:
AnyObject
得到:
let value = NSValue(MKCoordinate: currentLocation)
dictionary["currentLocation"] = value