2012-08-30 82 views
1

我在應用程序中實施了應用程序內購買。我需要在應用程序中使用應用內購買來購買產品。爲此,我使用iTunes a/c添加了我的產品app_id。iphone sdk應用程序內購買錯誤

這裏是我的代碼參考,

代碼:

ViewController.m

NSMutableArray *featuredappidArray; 


- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
featuredappidArray=[[NSMutableArray alloc]init]; 

} 

-(void)parseRecentPosts:(NSString*)responseString 
{ 
    NSString *app_store_id = [NSString stringWithFormat:@"%@",[post objectForKey:@"app_store_id"]]; 
      NSLog(@"Recent Post app_store_id: %@",app_store_id); 
      [featuredappidArray addObject:app_store_id]; 
      indexvalue=ndx; 
} 

- (void)buttonTapped:(UIButton *)sender 
{ 

    [detailview Receivedappidurl:featuredappidArray idx:indexvalue]; 

} 

DetailViewController.h

-(void)Receivedappidurl:(NSMutableArray*)recentappidArray idx:(int)index; 

DetailViewController.m

NSMutableArray *appidArray; 

-(void)Receivedappidurl:(NSMutableArray*)recentappidArray idx:(int)index 
{ 
     NSLog(@"recentappidArray:%@",recentappidArray); 
     appidArray=recentappidArray; 
} 

現在我的控制檯窗口接收我的web服務的所有APP_ID的。

我添加了IAPHelper,InAppRageIAPHelper,MBProgressHUD,Reachability類到我的項目中的In-App購買所需的類。

-(IBAction)purchaseButton 
{ 

    NSLog(@"appidarray:%@",appidArray); 
    NSLog(@"pdt index:%d",productIndex); 
    NSLog(@"APPLe indentifier:%@",[[appidArray objectAtIndex: productIndex] objectForKey: @"app_store_id"]); 
    [InAppRageIAPHelper sharedHelper].productIndex = productIndex; 
    [[InAppRageIAPHelper sharedHelper] buyProductIdentifier:[[appidArray objectAtIndex: productIndex] objectForKey: @"app_store_id"]]; 

    self.hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES]; 
    _hud.labelText = @"Buying Book..."; 
    [self performSelector:@selector(timeout:) withObject:nil afterDelay:60*5]; 
} 

這裏的時候,我攻購買按鈕我的應用程序得到墜毀,得到以下錯誤, 「終止應用程序由於未捕獲的異常‘NSInvalidArgumentException’,原因是:「 - [__ NSCFString objectForKey:]:無法識別的選擇發送到實例0x9154ad0'「

我介紹了很多tutorials.How購買使用這個?請幫我解決這個問題。任何幫助將不勝感激。提前致謝。

回答

1

這是崩潰的代碼

[[appidArray objectAtIndex: productIndex] objectForKey: @"app_store_id"] 

這最有可能是因爲[appidArray objectAtIndex: productIndex]返回一個字符串,而不是一本字典。

第一步:你需要加載從商店的物品是這樣的:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
SKProductsRequest *productsRequest = [[[SKProductsRequest alloc] initWithProductIdentifiers:yourProductIdentifiers autorelease]; 
productsRequest.delegate = self; 
[productsRequest start]; 

PS。你可以在網上找到你的產品標識,在管理應用程式內這樣做後購買區

,您將收到的產品清單,併購買任何他們:

SKPayment *payment = [SKPayment paymentWithProduct:product]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 
+0

那麼好吧。所有的app_id都在我的數組中。現在我該怎麼辦?使我的產品購買? – Saranya

+0

編輯我的答案.. – Vlad