如何在本地保存SKProduct对象?

时间:2013-01-06 02:48:23

标签: iphone objective-c ipad cocoa-touch in-app-purchase

我试图保存一个SKProduct对象,并将其与NSKeyedArchiver类一起存档,但它会生成错误 - [SKProduct encodeWithCoder:]:无法识别的选择器发送到实例

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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