Я работал над примером tableview из учебника Nutting, Olsson и Mark iOS7. У меня хорошо работает табличное представление, поэтому я добавил кнопку к моему представлению. Когда я касаюсь внутри кнопки, он вызывает метод addData. addData просто добавляет другой объект в массив, который отображается в таблице.Ошибки Изменение данных в TableView Objective C
Код компилируется отлично, но когда я нажимаю кнопку, он падает. Почему это? Я не понимаю сообщение об ошибке, но вот код.
#import "ViewController.h"
@interface ViewController()
@property (copy, nonatomic) NSMutableArray* dwarves;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.dwarves = @[@1.5,@2.,@2.5,@3.,@3.5,@4.,@4.5,@5.,@5.5,@6.,@6.5,@7.];
UITableView *tableView = (id)[self.view viewWithTag:1];
UIEdgeInsets contentInset = tableView.contentInset;
contentInset.top = 20;
[tableView setContentInset:contentInset];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.dwarves count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
SimpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:SimpleTableIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"%@",self.dwarves[indexPath.row]];
return cell;
}
- (IBAction)addData:(id)sender {
[_dwarves addObject:@100];
}
@end
Вот ошибка:
2015-05-28 18:37:24.449 TableView Practice[3630:145774] -[__NSArrayI addObject:]: unrecognized selector sent to instance 0x7924aa40
2015-05-28 18:37:24.453 TableView Practice[3630:145774] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x7924aa40'
Что случилось с этим кодом?
Вы должны были получить предупреждение при создании карликов, так как вы создаете неизменяемый массив, когда вы ввели его как изменяемый. Разве у вас не появился желтый желтый треугольник? – rdelmar
Нет, я этого не делал, но решение gnasher отлично работало! –