Я добавил UIAlertView, который имеет UIActivityIndicatior в качестве подпредставления для моего приложения.
Это предупреждение отображается только тогда, когда покупка в процессе. Я разместил свое предупреждение таким образом в моем StoreObserver:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchasing:
[self stillPurchasing]; // this creates an alertView and shows
break;
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
break;
default:
break;
}
}
}
- (void) stillPurchasing {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"In App Purchase" message: @"Processing your purchase..." delegate: nil cancelButtonTitle: nil otherButtonTitles: nil];
self.alertView = alert;
[alert release];
UIActivityIndicatorView *ind = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
self.indicator = ind;
[ind release];
[self.indicator startAnimating];
[self.alertView addSubview: self.indicator];
[self.alertView show];
}
Когда я нажимаю кнопку «Купить», этот UIAlertView отображается вместе с моим UIActivityIndicator. Но когда транзакция завершает функцию alertView, она все еще находится в верхней части представления, и индикатор был единственным, который был удален. Мой вопрос был, как я должен выпустить alertView? Или где / Когда я должен выпустить это.
Я добавил эти команды, чтобы освободить мои alertView и Indicator в следующих случаях:
case SKPaymentTransactionStatePurchased:
case SKPaymentTransactionStateFailed:
case SKPaymentTransactionStateRestored:
[self.indicator stopAnimating];
[self.indicator removeFromSuperview];
[self.alertView release];
[self.indicator release];
Я только добавил alertView, чтобы показать, что покупка еще продолжалась. Буду благодарен за любые предложения по созданию отзывов пользователей.
Спасибо