- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 Objective-C 协议(protocol),需要符合 NSSecureCoding
:
@protocol MyProtocol <NSObject, NSSecureCoding>
…
@end
我有一个父对象,它存储对符合 MyProtocol
的对象的引用,我希望父对象也符合 NSSecureCoding
。当我尝试这个时:
required init?(coder aDecoder: NSCoder) {
if let childObject = aDecoder.decodeObject(of: MyProtocol.self, forKey: "childObject") {
self. childObject = childObject
} else {
return nil
}
}
我收到错误:'decodeObject(of:forKey:)' 在 Swift 中不可用:使用通用的 'decodeObjectOfClass(_:forKey:)'
。
如果你不知道你编码的对象的具体类,有什么方法可以使用 NSSecureCoding 吗?
最佳答案
NSSecureCoding
的全部意义在于防止这种用例。如果您不知道正在解码的类,那么攻击者可以诱使您解码为一个行为不同于您对给定方法所期望的类的类(称为“替换攻击”)。这是一种用于攻击系统的技术,开发了 NSSecureCoding
来阻止它。
即使不是这种情况,也不可能构造协议(protocol)类型的对象。运行时无法知道为实例变量分配多少内存。
为了符合NSSecureCoding
,您必须知道所有子对象的准确类。
关于ios - 使用解码对象(: forKey:) to decode an object that conforms to a protocol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750655/
我需要创建一个类型安全的弱引用数组 一个包含“类型安全”弱引用并且可以是数组元素的结构: public struct WeakRef: Hashable { public weak var r
假设我有这个 Swift 类: class Foo: NSObject, NSCoding { var stringMember: String var intMember: Int
谁能解释一下,下面的例子有什么问题?为什么会抛出 StackOverflowError 异常? (s/def ::tag keyword?) (s/def ::s string?) (s/def ::
啊啊!尝试使用我的神经网络进行计算时,我不断收到以下错误: > net.compute matrix.train1 (Intercept) survived pclass sexmale
我在下面的行中面临警告 此警告在更改以下行后出现 @interface BDSAppDelegate : UIResponder 到 @interface BDSAppDelegate : UIRe
我正在尝试实现 git 项目 XLPagerTabStrip . 根据项目,每个 Controller 必须: Every view controller provided by PagerTabSt
clojure.spec.alpha API 有一个名为 conformer 的宏有这样的描述: Usage: (conformer f) (conformer f unf) takes
iPhone开发中的“符合”是什么意思?这个词被广泛使用,但我找不到令人满意的定义。 假设我们有 3 个类别 - A、B 和 C 如果A继承B&如果A符合C 这是什么意思? 另外,为什么大多数类、协议
我最近刚刚遇到“弱一致性”这个术语(在 Stack Overflow 用户 retronym 对 How to set up implicit conversion to allow arithmet
我在我的一个 MVC 项目中使用 ConfORM Nhibernate。并且有一对多映射的问题。 IEnumerable domainEntities = this.GetDomain
如何对两个数组进行逐元素算术运算在第一个维度上是一致的,但还有一个额外的维度? 示例,将数组 a (3 x 3 x 2) 乘以数组 b (3 x 3): a a * b 要使其工作,您必须将数组 b
我是 swift 新手,并按照教程了解更多信息。 在下面的代码中,我定义了自定义运算符( Bool { for cardValue in valueArray { if lhs
我有来自 here 的 FAA 剖面图.每个包都包含相关图表的 .tif、描述图表的 .htm 文件和 .tfw 世界文件。 map 投影为朗伯共形圆锥投影。 我正在开发一个 C# 应用程序,它需要能
当我在脚本中调用下面的函数时,我会看到一个弹出对话框来执行一些说明。 这是我的示例代码: function updateStatus(instrxnID){ exporter.
我试图通过注入(inject)适应 URLSession 和 URLSessionDataTask 协议(protocol)的对象来测试我自己的类。我正在扩展 NSURLSession 和 NSURL
这个问题在这里已经有了答案: Fatal error: Dictionary does not conform to Decodable because Any does not conform t
我想在我的一个代理类中管理所有位置代码。由于该类(class)是从头开始构建的,而不是构建在 UIView 上的或继承 NSObjectProtocol 的类似类,它会抛出错误“不符合协议(proto
无法理解为什么我的类不符合 Codable请注意,在我的例子中,我不需要实现方法encode 和decode。 public class LCLAdvantagePlusJackpotCache: C
我是 IOS swift 开发新手。我曾经使用以前的 Xcode 6 beta。 我已经下载了 Xcode 6.0.1 但我无法让它工作 Xcode Version: 6.0.1 当我尝试运行示例时,
以下 Scala 声明是可以的: trait Base[B y) then x else y 这相当于将 Ordering(与 java.util.Comparator 相同)传递给函数。确实,宣言
我是一名优秀的程序员,十分优秀!