4

我试图保存一个 SKProduct 对象并使用 NSKeyedArchiver 类对其进行归档,但它会生成一个错误为-[SKProduct encodeWithCoder:]: unrecognized selector sent to instance

+ (void)saveProduct:(SKProduct *)product
{
     NSData *data = [NSKeyedArchiver archivedDataWithRootObject:product];
    [[NSUserDefaults standardUserDefaults] setValue:data forKey:PRODUCT];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

有没有办法保存 SKProduct 的实例?

4

1 回答 1

3

您的 SKProduct 类需要符合 NSCoding 协议。

换句话说,您需要在您的 SKProduct 类中填写这两个方法。

  • (void)encodeWithCoder:(NSCoder *)aCoder;
  • (id)initWithCoder:(NSCoder *)aDecoder;

这将获取您的 SKProduct 类并将其分解,以便可以对其进行序列化和反序列化。

于 2013-01-06T02:55:21.423 回答