View加载后,IBOutlet UITableView为null

Ren*_*ler 3 iphone xcode cocoa-touch objective-c

这是基本代码(基于Xcode的Tabbed Applicaion模板)

ViewController.h

@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic,retain) NSMutableArray *movies;
@property (nonatomic,retain) IBOutlet UITableView *tableView;
Run Code Online (Sandbox Code Playgroud)

ViewController.m

@implementation ViewController
@synthesize movies,tableView;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"Watchlist", @"Watchlist");
        self.tabBarItem.image = [UIImage imageNamed:@"watchlist"];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
     NSLog(@"tableView = %@", tableView);
}
Run Code Online (Sandbox Code Playgroud)

产量

tableView = (null)
Run Code Online (Sandbox Code Playgroud)

TableView连接到IB中的File所有者,类设置为ViewController

我真的不明白为什么tableView为null.我不是Cocoa的新手(但是对于iPhone SDK),我用TableView dataSource创建了一个基于Single View的应用程序,看看我是否遗漏了一些东西.我让它在一分钟内工作.

有人可以帮忙吗?

Pau*_*l.s 8

在界面构建器中右键单击File's Owner并确保进行以下连接:

Outlets
tableView - Table View

Referencing Outlets
dateSource - Table View
delegate   - Table View
Run Code Online (Sandbox Code Playgroud)

我怀疑你可能没有第一次连接?

  • 初始化viewController时是否使用了正确的笔尖?我经常将nib选择逻辑放在viewController本身中,因为它使得另一个对象应该更好地了解类应该加载什么nib是没有意义的.如果不是,当您初始化时确保传递正确的笔尖名称以供使用 (2认同)