削除できる行数を含むテーブルビューがあります。テーブルビューに入力されるデータは、NSMutableArray に格納されます。1 行のデータを削除するには、次のように呼び出します。
- (void)deleteFromArray:(NSUInteger) number{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; //load NSUserDefaults
NSMutableArray *storedArray = [[ NSMutableArray alloc] init];
storedArray = [prefs objectForKey: @"mydata"];
[storedArray removeObjectAtIndex:number];
[prefs setObject:storedArray forKey:@"mydata"];
[storedArray release];
[prefs synchronize];
}
から
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
subscribe *subscribeclass = [subscribe alloc];
[subscribeclass deleteFromArray: indexPath.row];
[myTableView reloadData];
}
}
これは、行を初めて削除するときにうまく機能します。しかし、秒の行を削除すると、deleteFromArray の次の行でアプリケーションがクラッシュします。
[storedArray removeObjectAtIndex:number];
理由はありますか?