我创建了一个 DetailViewController .h 和 .m 文件。然后我在情节提要中创建了一个 UITableViewController 并将其连接到我制作的文件。
然后我将此代码添加到 DetailViewController.m 文件中:
#import "MasterViewController.h"
#import "DetailViewController.h"
// 1
#import "RageIAPHelper.h"
#import <StoreKit/StoreKit.h>
// 2
@interface MasterViewController () {
NSArray *_products;
}
@end
@implementation MasterViewController
// 3
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"In App Rage";
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(reload) forControlEvents:UIControlEventValueChanged];
[self reload];
[self.refreshControl beginRefreshing];
}
// 4
- (void)reload {
_products = nil;
[self.tableView reloadData];
[[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
if (success) {
_products = products;
[self.tableView reloadData];
}
[self.refreshControl endRefreshing];
}];
}
#pragma mark - Table View
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
// 5
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _products.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
SKProduct * product = (SKProduct *) _products[indexPath.row];
cell.textLabel.text = product.localizedTitle;
return cell;
}
@end
但是我在这样的行上遇到编译错误:
self.refreshControl = [[UIRefreshControl alloc] init];
说 self.refreshControl 无法识别。但是,如果文件是 UITableView 文件,那怎么可能呢?
编辑:
这是.h
//
// DetailViewController.h
// entrepreneur
//
// Created by MacOSLion on 8/7/13.
// Copyright (c) 2013 MacOSLion. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DetailViewController : UITableViewController
@end