在 Swift 中将 CLLocationCoordinate2D 转换为 CLLocation 时出错
Posted
技术标签:
【中文标题】在 Swift 中将 CLLocationCoordinate2D 转换为 CLLocation 时出错【英文标题】:Error converting CLLocationCoordinate2D to CLLocation in Swift 【发布时间】:2016-08-31 19:49:28 【问题描述】:我正在尝试将 cllocationcoordinate2d 转换为 cllocation。我在下面代码的第 12 行收到错误“容器文字中的预期表达式”。我还在第 13 行收到错误“无法将 cllocationcoordinate2d 类型的值转换为预期值 cllocation”,但这是因为第 12 行工作不正常。
@IBAction func makeEvent(sender: UIButton)
let center = CLLocationCoordinate2D(latitude: loc1.coordinate.latitude, longitude: loc1.coordinate.longitude)
let lat: CLLocationDegrees = center.latitude
let long: CLLocationDegrees = center.longitude
self.pointAnnotation1 = MKPointAnnotation()
self.pointAnnotation1.title = "Event"
self.pointAnnotation1.coordinate = CLLocationCoordinate2D(latitude: lat, longitude: long)
self.pinAnnotationView = MKPinAnnotationView(annotation: self.pointAnnotation1, reuseIdentifier: nil)
self.mapView?.centerCoordinate = self.pointAnnotation1.coordinate
self.mapView.addAnnotation(self.pinAnnotationView.annotation!)
CLLocation *center = [[CLLocation alloc] initWithLatitude:latt longitude:longg]
eventRecord.setObject(center, forKey: "event")
let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveRecord(eventRecord) record, error in
if error == nil
print("Location saved")
loadEvent() (error, records) in
if error != nil
print("error fetching locations")
else
print("Found Event")
【问题讨论】:
CLLocation *center = [[CLLocation alloc] initWithLatitude:latt longitude:longg]
是 Objective-C,而不是 Swift。
【参考方案1】:
您将目标 c 和 swift 混淆了。 试试这个:
let center = CLLocation(latitude: lat, longitude: long)
代替:
CLLocation *center = [[CLLocation alloc] initWithLatitude:latt longitude:longg]
【讨论】:
以上是关于在 Swift 中将 CLLocationCoordinate2D 转换为 CLLocation 时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中将字符串写入 NSOutputStream