2012-10-04 99 views
0

我已經在我的應用程序中實施了iAP, 我試圖購買,但在StoreKitController控制器它返回以前的交易細節。Gettinf previouse交易細節,而我嘗試新交易

例子: 首先我購買有產品名稱「ABC」,本次交易完成後, 之後,我嘗試另一個事務與產品「XYZ」, 但在第二個交易我得到的產品名稱和以下方法中產品「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.990000 ABC

但實際上這裏應該用於價格2.99的產品「XYZ」

在此先感謝。

+0

我知道這種類型的問題問,但在這裏我的問題是不同的。 我不知道我的數組(NSMutableArray)和數組在這裏字典(NSDictionary)是作爲一個對象。 但是,無論何時我從NSUserDefault取數組它自動變成不可變的字典。 – iBapu

+0

你的問題是完全一樣的。你正在從NSUserDefaults中獲取一個字典並調用setObject:forKey:就可以了。那個問題的答案是怎麼回事? –

+0

我試過「mutablecopy」之前,我發佈在這裏我的問題不工作。 – iBapu

回答

0

如果您的InvoiceInfoArr是NSArray使其成爲NSMutableArray

+0

感謝您的重播.. 這裏的數組和字典都是可變.. 我知道這種類型的問題問,但在這裏我的問題是不同的。 我不知道我的數組(NSMutableArray)和數組在這裏字典(NSDictionary)是作爲一個對象。 但是,無論何時我從NSUserDefault取數組它自動變成不可變的字典。 – iBapu

+0

[AppDel.InvoiceInfoArr objectAtIndex:AppDel.SelectedRowForInvoice]是否返回字典?只需交叉檢查。 – parilogic

+0

是它的返回字典.. – iBapu

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]; 
} 
+0

感謝重播.. 這裏陣列和字典都是可變的.. 我不知道我的數組(NSMutableArray的)和陣列這裏字典中(的NSDictionary)是作爲一個對象。 但是,無論何時我從NSUserDefault取數組它自動變成不可變的字典。 – iBapu

+0

你已經確定了數組中的不可變字典。試試我添加到帖子中的代碼 – xxcv

0

您要設置對象在一個NSDictionary的關鍵,其導致崩潰,在那裏,因爲你需要類型轉換字典到一個可變的字典。希望這可以幫助。