2012-02-06 2 views
1

У меня есть эта проблема, с которой я сижу. Мой tableView, который я ввел в UIView, не заполняется, или иногда я получаю исключение.UITableView, не заселяющий UIView

// .h 
@interface List : UIViewController <UITableViewDelegate, UITableViewDataSource> 
{ 
    UITableView *mTableView; 
} 

@property (nonatomic, readonly) IBOutlet UITableView *tableView; 
//------------------------------ 
// .m 
@synthesize tableView=mTableView; 

//Further I do the normal viewDidUnload stuff = nill 
//And the numberOfSectionsInTableView, numberOfRowsInSection and 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"cellForRowAtIndexPath:"); 
    NSLog(@"Table View: %@",[tableView description]); 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 
    cell.textLabel.text = @"Hi"; 
    // Configure the cell... 

    return cell; 
} 

я получаю в качестве вывода:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<List 0x6a78000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key tableView.' 

или просто список пустых ячеек, даже не «Привет» в качестве заголовка.

+0

Этот код выглядит хорошо. Отладчик дает номер строки для ошибки? Хотя я не уверен в печати [tableView description]; у вас не должно быть необходимости в этом. (Этот метод не будет вызываться, если он недоступен) –

+0

На данный момент я получаю исключение, поэтому NO NSLogs запускаются вообще :(. [Описание таблицыView] Я вставил, чтобы посмотреть, выбирает ли он правильный tableView для Кроме того, у меня есть подозрения, но на данный момент я получаю исключение. –

+1

попробуйте установить свойство для сохранения вместо readonly. –

ответ

1

Я почти уверен, что эта ошибка возникает из-за неправильного подключения вашего UITableView. Вы должны удалить ivar mTableView, IB свойство outletView стола и @synthesize. Затем УДАЛИТЬ ВЫХОД В IB. Затем подключите его снова, перетащив его из конструктора интерфейса и НЕ ТИП ЛЮБОГО КОДА в своем классе. Xcode будет делать все вещи для вас (создать свойство, обобщать и делать MM вещи)

+0

Полностью согласен. – Krishna

+0

Я сделал это по-своему, все еще ничего, cellForRowAtIndexPath, кажется, работает 5 раз (я ставлю NSLog внутри), но у них все еще нет таблиц. (Я на работе, я не могу загружать изображения) –

+0

тем не менее я все еще уверен, что проблема в неправильном подключении торговых точек ... попробуйте удалить ВСЕ розетки и снова подключить их. У меня была эта проблема несколько дней назад ... Моя проблема заключалась в отсутствии выхода – Stas

0

Убедитесь, что вы установили делегат и источник данных таблицы внутри интерфейса Builder

0

Если вы ничего не делаете с вашим IBOutlet, почему у вас есть это? Метод

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

вызываются бобы-файл для экземпляра Tableview созданного в nib.Your классе, как делегат этого экземпляра принимает этот вызов. Будучи делегатом таблицыView в nib, все, что вам нужно.

Смежные вопросы