アプリ内購入アプリを開発していますが、製品のプロ アプリ ストアを取得した後、それらの製品を uitableview にロードしようとしています。問題は、製品リストを取得したときに、テーブル内のデータを読み込めないことです。reloadData を使用せずに静的な値を使用してテーブルを作成すると、すべてが機能します。
テーブルをロードする以外はすべて正常に動作しています
私のコードはどこですか:
@synthesize products;
@synthesize productsTableView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
NSSet *productIndentifiers = [NSSet setWithObjects:@"Prod01",@"Prod02",@"Prod03",nil];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIndentifiers];
[productsRequest start];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
[super viewDidLoad];
}
- (void)viewDidUnload
{
[self setProductsTableView:nil];
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - UITableViewDelegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.products.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
[self.productsTableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"];
SKProduct *product = [self.products objectAtIndex:indexPath.row];
cell.textLabel.text = product.localizedTitle;
}
return cell;
}
#pragma mark - SKProductsRequestDelegate
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"%@", response.products);
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
[self.productsTableView reloadData];
}
- (void)dealloc {
[productsTableView release];
[super dealloc];
}
@end