IPhone SDK, Показать массив NSMutable в табличном представлении? - PullRequest
1 голос
/ 30 мая 2010

Я попытался отобразить мой NSMutableArray в табличном представлении, следуя инструкциям. По какой-то причине он полностью потерпел неудачу, я думаю, у меня есть хорошая идея, почему, но я не могу обойти это, это мой код:

- (void) scoreSystem {
scoreArray = [[NSMutableArray alloc] init];
NSNumber *onescore = [NSNumber numberWithInteger:score];
[scoreArray addObject:onescore];
NSNumber *twoscore = [NSNumber numberWithInteger:score];
[scoreArray addObject:twoscore];
NSNumber *threescore = [NSNumber numberWithInteger:score];
[scoreArray addObject:threescore];
NSNumber *fourscore = [NSNumber numberWithInteger:score];
[scoreArray addObject:fourscore];
NSNumber *fivescore = [NSNumber numberWithInteger:score];
[scoreArray addObject:fivescore];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [scoreArray count];
}

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];    
}
cell.textLabel.text = [scoreArray objectAtIndex:indexPath.row];

return cell;
}

Я думаю, это потому, что он не позволяет мне правильно связать все в IB, он позволяет мне поместить источник данных и делегировать владельцу файлов, но затем, когда я перетаскиваю из владельца файлов на мой взгляд, он говорит «делегировать». вместо «просмотра» я думаю, потому что я делаю это в «главном окне», а не в ВК. Есть ли способ обойти это? Спасибо! гарри.

Ответы [ 2 ]

0 голосов
/ 06 июля 2011

Ну почему-то кто-то наткнулся на эту старую ветку. Я мог бы также вмешаться. Причина, по которой у этого кода проблемы, заключается в том, что он пытается установить свойство text ячейки в NSNumber.

cell.textLabel.text = [scoreArray objectAtIndex:indexPath.row];

Попробуйте вместо этого:

cell.textLabel.text = [[scoreArray objectAtIndex:indexPath.row] stringValue];
0 голосов
/ 06 июля 2011

Вы хотите установить класс, в котором находится ваш код, в качестве источника данных табличного представления. Создайте экземпляр вашего класса в IB (используйте NSObject и переименуйте его в YourClass).

Это создаст экземпляр вашего класса, который будет доступен при декодировании пера.

Затем перетащите контроль из табличного представления в свой класс и установите источник данных.

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

...