IBOutlet UITableView является нулевым после загрузки View - PullRequest
3 голосов
/ 17 июля 2011

Вот основной код (на основе шаблона приложения Xcode с вкладками)

ViewController.h

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

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);
}

выход

tableView = (null)

TableView подключен к владельцу файла в IB с классом, установленным в ViewController

Я действительно не понимаю, почему tableView равен нулю. Я не новичок в Какао (но в iPhone SDK), я создал приложение на основе Single View с источником данных TableView, чтобы увидеть, что я что-то упустил. Я получил это работает менее чем за минуту.

Кто-нибудь может помочь?

Ответы [ 2 ]

8 голосов
/ 17 июля 2011

Щелкните правой кнопкой мыши в конструкторе интерфейсов File's Owner и убедитесь, что выполнены следующие подключения:

Outlets
tableView - Table View

Referencing Outlets
dateSource - Table View
delegate   - Table View

Я подозреваю, что вы не установили первое соединение?

1 голос
/ 15 сентября 2014

Убедитесь, что перо / сгиб включено в вашу текущую цель.

Я только что столкнулся с этой проблемой на Xcode5 с iOS7 SDK. Как ни странно, я обнаружил, что перо больше не было включено в мою цель. Я не знаю, когда и почему это произошло, но у него был такой странный побочный эффект, что большинство IBOutlets не были настроены должным образом, даже если все соединения из кода в nib / xib были в порядке.

Например: мой MKMapView *map был в моем списке подпредставлений на viewDidLoad:, но свойство IBOutlet MKMapView *map в моем контроллере представления все еще было nil . После того, как я поставил галочку «включить в цель», все заработало как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...