我在objective-c,macOS上。
我目前正在重写一个应用程序以支持 NSSecureCoding 协议。在某些类中,我有一些像这样的属性
@property id objectValue;
这些对象可以是非常动态的类型(NSString,自定义对象......)在加载时我之前这样做过:
_objectValue = [coder decodeObjectForKey:@"objectValue"];
使用 NSSecureCoding 我需要指定我显然无法使用 id 的类。所以这是我的问题:
传递一个像 NSObject 这样的超类是否可以,即使它基本上是一个 NSString?
_objectValue = [coder decodeObjectOfClass:[NSObject class] forKey:@"objectValue"];
但是……这不是抵消了 NSSecureCoding 的想法吗?
还有另一种(更好的)方法吗?
编辑:刚刚看到这对于多个类 decodeObjectOfClasses:forKey: 是可能的 - 正确的方法是列出所有可能的类吗?