1

1 つのアプリに IAP を実装しようとしていますが、まだ問題があります。さまざまなチュートリアルに従いましたが、それらはすべて古く、エラーでいっぱいです。私が見つけた唯一のものはこれです:

しかし、問題が発生しています.3つの製品がテーブルビューに表示されますが、そのうちの1つをクリックしても何も起こりません...セルが青くなり、それだけです.何か不足していますか?

それとも、そのチュートリアルは不完全ですか?

購入試行を実行するにはどうすればよいですか?

これが私のコードです:

   -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
     {
      [productDetailsList addObjectsFromArray: response.products];
      [productDisplayTableView reloadData];
     }


     -(void)request:(SKRequest *)request didFailWithError:(NSError *)error
      {
         NSLog(@"Failed to connect with error: %@", [error localizedDescription]);
       }    


       - (NSInteger)tableView:(UITableView *)tableView
   numberOfRowsInSection:(NSInteger)section
       {
        return [self.productDetailsList count];
       }
       - (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
       {
           static NSString *GenericTableIdentifier = @"GenericTableIdentifier";
           UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: GenericTableIdentifier];
           if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: GenericTableIdentifier];
           }
           NSUInteger row = [indexPath row];
           SKProduct *thisProduct = [productDetailsList objectAtIndex:row];
           [cell.textLabel setText:[NSString stringWithFormat:@"%@ - %@",            thisProduct.localizedTitle, thisProduct.price]];
           return cell;
       }



        - (void)viewDidLoad
       {
           productDetailsList    = [[NSMutableArray alloc] init];
           productIdentifierList = [[NSMutableArray alloc] init];
           for (short item_count=1; item_count <= 5; item_count++) {
               [productIdentifierList addObject:[NSString              stringWithFormat:@"com.mycompany.myapp.%d", item_count]];
           }
           SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifierList]];
           request.delegate = self;
           [request start];

           [super viewDidLoad];
           // Do any additional setup after loading the view from its nib.
       }
4

2 に答える 2

2

次の行に何かが必要です。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
if ([SKPaymentQueue canMakePayments])
{
    SKProduct *selectedProduct = [self.productDetailsList objectAtIndex:indexPath.row];
    SKPayment *payment = [SKPayment paymentWithProduct:selectedProduct];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}
}

Apple は、アプリの購入を処理するための適切なステップバイステップのガイドを提供しています。

于 2013-04-29T17:22:51.247 に答える