【发布时间】:2016-08-14 18:27:12
【问题描述】:
我无法从 cloudkit 获取位置。该位置已上传,但是当我尝试将它们打印出来并加载时,它们不会被下载。我没有收到任何错误。
此函数将位置上传到 CloudKit:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.015, longitudeDelta: 0.015))
self.mapView.setRegion(region, animated: true)
self.locationManager.stopUpdatingLocation()//
let locationRecord = CKRecord(recordType: "location")
locationRecord.setObject(location, forKey: "location")
let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveRecord(locationRecord) { record, error in
}
if error == nil
{
print("Location saved")
}
event1 = locations
}
此函数从 CloudKit 获取位置:
func loadLocation()
{
let locations = [CKRecord]()
let publicData1 = CKContainer.defaultContainer().publicCloudDatabase
let query1 = CKQuery(recordType: "location", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray:nil))
publicData1.performQuery(query1, inZoneWithID: nil) { (results: [CKRecord]?, error: NSError?) -> Void in
if let locations = results
{
self.locations = locations
print(locations)
}
}
}
【问题讨论】:
-
你能详细说明问题到底是什么吗?它是从
CKRecords创建CLLocationCoordinate2D吗?它是否在地图上显示图钉? -
现在我无法创建 CLLocationCoordinate2D。我也不认为这些位置正在被获取。 @grimfrog
-
保存代码中括号错误。但是你必须知道,因为你所拥有的不会编译对吗?
标签: ios swift cloudkit cllocation ckrecord