0

我在objective-c,macOS上。

我目前正在重写一个应用程序以支持 NSSecureCoding 协议。在某些类中,我有一些像这样的属性

@property id objectValue;

这些对象可以是非常动态的类型(NSString,自定义对象......)在加载时我之前这样做过:

_objectValue = [coder decodeObjectForKey:@"objectValue"];

使用 NSSecureCoding 我需要指定我显然无法使用 id 的类。所以这是我的问题:

  1. 传递一个像 NSObject 这样的超类是否可以,即使它基本上是一个 NSString?

    _objectValue = [coder decodeObjectOfClass:[NSObject class] forKey:@"objectValue"];
    

    但是……这不是抵消了 NSSecureCoding 的想法吗?

  2. 还有另一种(更好的)方法吗?

编辑:刚刚看到这对于多个类 decodeObjectOfClasses:forKey: 是可能的 - 正确的方法是列出所有可能的类吗?

4

0 回答 0