Почему paymentQueueRestoreCompletedTransactionsFinished не вызывается после возобновления прерванного восстановления IAP?

#ios #in-app-purchase

#iOS #покупка в приложении

Вопрос:

Моя реализация восстановления, похоже, в основном работает.

paymentQueue:updatedTransactions: Я блокирую пользовательский интерфейс с помощью индикатора модальной активности, отправляю запросы на наш сервер для каждой восстановленной транзакции, получаю ответы, сообщающие мне идентификатор соответствующего (непотребляемого) элемента для загрузки. Я закрываю транзакцию. Наконец, paymentQueueRestoreCompletedTransactionsFinished или restoreCompletedTransactionsFailedWithError: это мой сигнал, чтобы удалить индикатор активности и если nec. чтобы начать загрузку. Пока все хорошо. Это работает.

Если процесс восстановления прерван (приложение завершает работу), paymentQueue:updatedTransactions: он по-прежнему выполняет свою работу нормально при повторном запуске приложения, но я не получаю paymentQueueRestoreCompletedTransactionsFinished событие. Таким образом, мне не хватает подсказки, чтобы удалить индикатор активности и начать загрузку.

Кто-нибудь знает, что может быть причиной этого?

Мой обходной paymentQueueRestoreCompletedTransactionsFinished путь — полностью игнорировать и вместо этого использовать paymentQueue:removedTransactions: для отслеживания количества элементов в очереди, действуя соответствующим образом, когда элементов больше нет. Не кажется мне особенно элегантным, хотя открывает возможность отображения более информативного сообщения о ходе выполнения.

Комментарии:

1. Я вижу то же самое. Я уже использовал paymentQueue:removedTransactions: для обновления индикатора выполнения, но я надеялся использовать paymentQueueRestoreCompletedTransactionsFinished, чтобы закрыть мой модальный диалог… думаю, мне просто придется сделать это уродливым способом =/