0

我创建了一个 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
4

2 回答 2

1

我认为你在某个地方有错误......

看,你向我们展示了以下的实现:

@implementation MasterViewController

但是 的定义:

@interface DetailViewController : UITableViewController

这就是为什么它在 MasterViewController 中找不到 refreshControl 的原因:它是 UITableViewController 的属性,也是你的 DetailViewController 的属性。

如果您不清楚,请告诉我。

于 2013-08-08T03:34:21.537 回答
0

将此添加到 .h

 @property (weak, nonatomic) UIRefreshControl *refreshControl;
于 2013-08-07T23:57:50.783 回答