gpt4 book ai didi

swift - 如何在 CloudKit 上快速存储用户位置?

转载 作者:行者123 更新时间:2023-11-30 10:05:02 24 4
gpt4 key购买 nike

我正在尝试存储用户旅程并将其上传到 CloudKit。

每当用户移动超过 5 米时,以下内容都会获取用户的位置并作为字符串上传,但我希望将其作为位置列表或类似内容上传,以便稍后可以将其下拉。

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
addCrumbPoint(center)

let message = "{\"lat\":\(location!.coordinate.latitude),\"lng\":\(location!.coordinate.longitude), \"alt\": \(location!.altitude)}"

let newSweet = CKRecord(recordType: "Sweet")
newSweet["content"] = message

let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveRecord(newSweet, completionHandler: { (record:CKRecord?, error:NSError?) -> Void in
if error == nil {
print("woo")
}else{
print(error)
}
})
}

有关使用 Location 和 CloudKit 的文档是用 Objective-C 编写的,因此任何帮助都会很棒。

CloudKit

CLLocationManager

最佳答案

您创建一个 CKRecordID 和一个 CKRecord。然后在 CKRecord 上设置最后检索到的 CLLocation。

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last!
let id = CKRecordID(recordName: "01")
let locationRecord = CKRecord(recordType: "location", recordID: id)
locationRecord.setObject(location, forKey: "location")
// or locationRecord["location"] = location
let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveRecord(locationRecord) { record, error in
//
}
}

关于swift - 如何在 CloudKit 上快速存储用户位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com