Я хотел бы сохранить транзакцию SKPayment в настройках пользователя по умолчанию или на устройстве, и я также хотел бы сохранить данные транзакции на моем сервере позднее (еще не сделано), чтобы пользователь мог восстановить подписку если требуется / необходимо / возможно.
Проблема, с которой я столкнулся, заключается в том, что я пытаюсь сохранить настройки пользователя по умолчанию, но мне все время говорят:
* - [NSUserDefaults setObject: forKey:]: попытка вставить значение не-свойства '{
транзакция = ""; } 'класса' __NSCFDictionary '.
Код, который я использую:
// Save
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:transaction forKey:@"transaction"];
[[NSUserDefaults standardUserDefaults] setObject:dict forKey:@"TransactionReceipt"];
[[NSUserDefaults standardUserDefaults] synchronize];
// Read
NSMutableDictionary *savedDict = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyTransactionReceipt"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Saved stored transaction = %@", savedDict);
Я также пытался сохранить сам объект транзакции, а не сохранять его в словаре, но это всегда выдает ошибку, когда он жалуется на
"Попытка вставить значение свойства без вставки ..."
Я также пытался использовать NSKeyedArchiver, но я не знал, как его кодировать, чтобы обрабатывать чтение и запись транзакции SKPaymentTransaction.
Любая помощь по этому вопросу была бы очень признательна.
Спасибо.