- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试为我的应用制作一个 Action 扩展,用户可以在其中添加他的当前位置以及一些其他数据。在与 Apple Maps App 共享位置后,我调试了扩展程序,发现 Maps 发送了四个提供程序,内容如下:
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/
我正在了解 NSSecureCoding Apple 在 iOS 6 中引入的协议(protocol)。 据我目前的理解,只要一个类对其自身的实例进行编码/解码,就应该使用它,以防止替换攻击。 我想知
@objc(EventNotificationInfo) class EventNotificationInfo: NSObject, NSSecureCoding { pub
从 AppDelegate 我称之为: -(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(
我知道使用“NSSecureCoding”可以将数据安全地存储到磁盘,类似于钥匙串(keychain)作为信息安全存储的地方。 我还了解钥匙串(keychain)具有在同一提供商的应用程序之间共享的优
我决定使用 NSSecureCoding 而不是 NSCoding,但我无法让它正常工作。 我预计以下代码会失败,因为我正在编码 NSString 但试图解码 NSNumber。然而,该对象在没有抛出
我有一个类 SGBContainer 的对象它有一个名为 objects 的数组包含类 SGBObject 的对象.目前,它们都实现了 NSCoding 但没有实现 NSSecureCoding。 -
在关注 Creating XPC Services guide 时在 Swift 中并尝试传递自定义 Foo 类,我发现为了使其正常工作,它必须位于动态库中。当它嵌入到两个目标时,与服务的连接失败并返
我在采用 NSSecureCoding 时遇到了问题。我对一个包含自定义类对象的数组进行编码,该类正确地采用了 NSSecureCoding。当我解码它时,传递类 NSArray(这是我编码的对象的类
我正在尝试从 .scn(最初是我转换为 .scn 的 DAE 文件)创建一个 SCNNode,当我这样做时,控制台会生成以下内容: [general] NSSecureCoding allowed c
我正在尝试将一段 Objective-C 代码转换为 Swift 代码。 objective-C : #import "SUCacheItem.h" #define SUCACHEITEM_TOKEN
我有一个变量 var pausedTime: TimeInterval? 我想使用 NSSecureCoding 对其进行编码和解码 到目前为止我有这个用于编码: aCoder.encode(paus
我整个下午都在用头撞墙试图弄清楚为什么这个类的解码失败。该类有一个属性是 Foo 对象的 NSArray。 Foo 符合 NSSecureCoding,我已经成功地自行编码和解码了该类。我在 init
我目前正在试用 iOS 10 Beta 并决定将我的 Swift 代码转换为 Swift 3。直到现在,我能够使用以下方法安全地解码字符串 coder.decodeObjectOfClass(NSSt
背景 我们有多个符合 NSSecureCoding 协议(protocol)的类。 @interface ClassA : NSObject // ... @end @interface Class
我有一些代码可以创建一个名为“content”的 NSSecureCoding 变量,我想将该变量转换为 NSData,然后可以将其制作成 UIImage 或发送到本地服务器。我该如何正确转换?我想要
我正在创建一个链接列表并使用容器对对象、下一个和上一个属性进行分组。与 Foundation 集合一样,我希望它能够实现 NSSecureCoding。这是声明: @interface ListCon
我正在尝试为我的应用制作一个 Action 扩展,用户可以在其中添加他的当前位置以及一些其他数据。在与 Apple Maps App 共享位置后,我调试了扩展程序,发现 Maps 发送了四个提供程序,
我正在使用 loadItemForTypeIdentifier:options:completionHandler: NSItemProvider 对象上的方法,用于通过 iOS 8 中的共享扩展从
根据Apple规范,当一个类支持NSSecureCoding时,它应该使用 decodeObjectOfClass:forKey: 在 initWithCoder 但是由于字典不知道其内容,它如何支持
我正在尝试对 SceneKit SCNMatrix4 进行安全编码,使其符合 NSSecureCoding,类似于以下内容: if let transform = aDecoder.decodeObj
我是一名优秀的程序员,十分优秀!