0

アプリケーションにiAPを実装しました。購入しようとしていますが、StoreKitControllerコントローラーで以前のトランザクションの詳細を返します。

例: 最初に製品名「ABC」で購入した場合、このトランザクションは完了します。その後、製品「XYZ」で別のトランザクションを試行しますが、2番目のトランザクションでは、以下の製品「ABC」の製品名と製品価格を取得しています。方法。

- (void)DoBuy:(NSString*)ProductName PaymentType:(int)type Quantity:(int)Q
{
    DLog(@"Product is.......%@",ProductName);
    // My code
}

製品は.......ABC

- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
  DLog(@"Price is..%lf",ProductPrice);
  DLog(@"%@",transaction.payment.productIdentifier);
  // My Code
}

価格は...1.990000ABC

しかし実際にはここでは価格2.99の製品「XYZ」用であるはずです

前もって感謝します。

4

3 に答える 3

0

クラッシュの原因となる NSDictionary のキーにオブジェクトを設定しようとしています。辞書を変更可能な辞書に型キャストする必要があります。お役に立てれば。

于 2012-10-04T06:27:36.053 に答える
0

あなたの InvoiceInfoArr がそれをNSArray作る場合NSMutableArray

于 2012-10-04T05:47:00.837 に答える
0

NSUserDefaults から NSDictionaries の配列を取得しています。これらは不変であるため、コンテンツを変更することはできません。配列を繰り返し処理し、NSDictionaries を NSMutableDictionaries に変更する必要があります

これを試してみてください

for (NSUInteger i = 0; i < AppDel.InvoiceInfoArr.count; i++) {
    NSDictionary *dict = [AppDel.InvoiceInfoArr objectAtIndex:i];
    NSMutableDictionary *mutableDict = [dict mutableCopy];
    [AppDel.InvoiceInfoArr replaceObjectAtIndex:i withObject:mutableDict];
}
于 2012-10-04T05:49:41.440 に答える