在目标C的方案拟订中,我对主题问题感到非常担忧。
我试图撰写一些简单的材料,在表层中增加储存的单一数字。
此处是“附加系统”方法的内置代码和代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Test App";
self.navigationItem.leftBarButtonItem = self.editButtonItem;
addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addItem)];
self.navigationItem.rightBarButtonItem = addButton;
self.itemArray = [[NSMutableArray alloc] initWithCapacity:100];
}
- (void)addItem {
[itemArray insertObject:@"1" atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
这一条
[itemArray insertObject:@"1" atIndex:0];
产生以下错误:
*** -[NSMutableArray objectAtIndex:]: index 0 beyond bounds for empty array
为什么指数0超出空阵的界限,我干什么错?
<><>UPD>/strong>
正如BP指出的,插入阵列可能不利于空阵,因此我补充说:
if ([itemArray count] == 0) {
[itemArray addObject:@"1"];
} else {
[itemArray insertObject:@"1" atIndex:0];
}
因此,我现在收到同样的错误信息,但行文不变。
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
任何关于可能有什么错误的想法?