gpt4 book ai didi

ios - 如何在 Action Extension 中将 NSSecureCoding 转换为 MKMapItem

转载 作者:搜寻专家 更新时间:2023-10-31 22:54:21 28 4
gpt4 key购买 nike

我正在尝试为我的应用制作一个 Action 扩展,用户可以在其中添加他的当前位置以及一些其他数据。在与 Apple Maps App 共享位置后,我调试了扩展程序,发现 Maps 发送了四个提供程序,内容如下:

  • 所选地点的名片
  • 所选位置的 Apple map URL
  • 纯文本,即所选位置的名称
  • 一个MKMapItem

以上内容均为NSSecureCoding类型。强制转换为 Data 并使用 vCard 的数据初始化 String,为纯文本和 url 的 String 从 NSSecureCoding 成功,但我没有找到了一种方法,可以根据我收到的数据创建一个 MKMapItem 对象。

这是我尝试过的:

provider.loadItem(forTypeIdentifier: "com.apple.mapkit.map-item", options: nil) { (content, _) in
let item = content as! MKMapItem

}

但是失败了。我可能必须先将它转换为 Data 但我找不到任何带有 Data

MKMapItem 初始化程序

最佳答案

使用 NSKeyedUnarchiver

itemProvider.loadItem(forTypeIdentifier: "com.apple.mapkit.map-item", options: nil) { (item, error) in

guard let data = item as? Data else { return }

do {
guard let mapItem = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? MKMapItem else { return }
print(mapItem)
} catch {
print("Error unarchiving mapItems, \(error)")
}

关于ios - 如何在 Action Extension 中将 NSSecureCoding 转换为 MKMapItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219700/

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