Как обновить numberOfRowsInSection с помощью NSMutableArray count - PullRequest
1 голос
/ 21 октября 2010

В моем приложении я разрешаю пользователям добавлять новые строки NSStrings в UITableView. Я сохраняю эти новые строки в NSMutableArray * dataArray

Так что для numberOfRowsInSection я возвращаю [dataArray count], но кажется, что он все время возвращает 0, поэтому моя таблица не заполняется автоматически.

Если это помогает, когда я делаю NSLog [dataArray count] в качестве добавления дополнительных записей, он остается равным 0. Почему он не увеличивается?

Любая помощь?

Ответы [ 3 ]

4 голосов
/ 21 октября 2010

Не глядя @ на ваш код, невозможно предсказать причину ..

Тогда вы также можете попробовать свой HardLuck ... ниже:

Сначала попробуйте NSLog ваш массив данных для проверкиНезависимо от того, добавляет запись или нет.

Все нормально ... вы получаете записи.

, тогда вам не хватает одной вещи.

перезагрузите таблицу.. [tableView reloadData];

Я думаю, это определенно поможет вам ... в противном случае поместите сюда какой-нибудь код.

3 голосов
/ 21 октября 2010

Вы инициализировали свой массив.Вот как я это сделал - возможно, лучший способ!

.h:

@interface RootViewController : UITableViewController {
NSArray *array;
}

@property (nonatomic, retain) NSArray *array;

@end

.m:

@implementation RootViewController
@synthesize array;

- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *mArry = [[NSMutableArray alloc] init];
    [mArry addObject:@"An ObecjT"];
    self.array = mArry;
    [mArry release];

}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [array count];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell.
    cell.textLabel.text = [array objectAtIndex:indexPath.row];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSMutableArray *aNewArray = [[NSMutableArray alloc] initWithArray:array];
    [aNewArray addObject:@"Your Object"];
    self.array = aNewArray;
    [aNewArray release];
    [self.tableView reloadData];

}
- (void)viewDidUnload {
    self.array = nil;
}


- (void)dealloc {
    [array release];
    [super dealloc];
}
1 голос
/ 21 октября 2010

Вы установили делегат для UITableView в Интерфейсном Разработчике? пожалуйста, проверьте это.

Если вы добавили, вы должны проверить с этим dataArray, есть ли у него записи.

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