Пустые ячейки UITableView - PullRequest
       3

Пустые ячейки UITableView

0 голосов
/ 27 апреля 2011

Я пытаюсь восстановиться после случайного удаления моего файла .m. Кто-нибудь видит, что я делаю неправильно, из-за чего все мои клетки становятся пустыми?

.h

#import <UIKit/UIKit.h>
@interface FirstViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
}
@end

.m

#import "FirstViewController.h"
#import "Shared.h"
#import "Message.h"

@implementation FirstViewController

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

    static NSString *CellIdentifier = @"CellIdentifier";

    // Dequeue or create a cell of the appropriate type.
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
        cell.textLabel.text = @"Foo"; 
    return cell;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSLog([NSString stringWithFormat:@"Number of rows %i", [[Shared sharedInstance].messages count]]);
    //this comes back as 10
    return [[Shared sharedInstance].messages count];
}

Обновление:

Я связал это со странной проблемой. Далее я выхожу как 10, но если я вернусь, строки будут пустыми. Если я верну 10, как показано ниже, это сработает.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    #warning Incomplete method implementation.
    // Return the number of rows in the section.
    NSInteger i = [[Shared sharedInstance].messages count];
    NSLog([NSString stringWithFormat:@"Number of rows %i", i]);
    return 10;
}

Еще одно обновление:

Хорошо, я подошел ближе. Кажется, что хотя reloaddata вызывается, когда я прохожу с отладчиком, похоже, что он не перезагружается должным образом. Вот почему жестко закодированное число сработало, если я использовал жестко закодированную строку-образец для каждой строки. При первой загрузке число строк будет равно нулю, а поскольку reloaddata не работает, при следующей загрузке оно не обновляется до 10 строк.
В случае, если кому-то интересно, связан ли я с делегатом и источником данных.

screen capture

1 Ответ

0 голосов
/ 28 апреля 2011

Убедитесь, что если вы используете XIB, ваши соединения установлены и они указывают на UITableView.

Кроме того, когда вы используете UITableViewController, вам не нужно использовать <..Delegate,..Datasource>протоколы.

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