0

インターウェブから取得したアイテムの配列をUITableViewに入力しています。

問題のコードは、インターウェブの配列から入力されたリストからアイテムを選択し、選択されたアイテムに基づいて別のphpスクリプト->sqlテーブルなどにリクエストを送り返します。私が抱えている問題は、リスト全体が正しく入力されていることですが、リスト/テーブルビューの最後の項目を使用すると、array.textLabel.textは明らかに..存在しません。すべてがうまくいきますが、この最後の1つのアイテム(配列内にあるアイテムの数に関係なく、最後のアイテムは残っていません...残っているか何か)そして何も選択しません。

次に、2番目のリクエストを送信すると、最後のアイテムが存在せず、そこにないものをプルしようとしていると表示されるため、範囲外エラーが発生します。

*キャッチされなかった例外'NSRangeException'が原因でアプリを終了しています。理由:'* -[NSArray objectAtIndex:]:インデックス1が境界を超えています[0 .. 0] '

これは、データの入力に使用する配列を作成する方法です。

NSArray *listItems = [parsedOutput componentsSeparatedByString:@","];
restList = [[NSArray alloc] initWithArray:listItems];

行数は[restListcount]に基づいています。などと私が使用するテキストを呼び出すために:

restName = [tableView cellForRowAtIndexPath:indexPath];
sendName = restName.textLabel.text;

リストされて選択可能であるにもかかわらず、最後の要素が存在しないように見える理由はありますか?

4

1 に答える 1

0

エラーは、何が起こっているかを正確に示します。配列の境界外にあるインデックスにアクセスしようとしています。したがって、間違った配列にアクセスしているか、配列の実際の終わりを過ぎて1にアクセスしています。エラーが発生する行の直前に配列をNSLogして、配列がゼロインデックスであることを念頭に置いて、アクセスしようとしている出力index.rowだけでなく、実際に正しい要素が含まれているかどうかを確認してください。

于 2011-04-17T07:56:46.807 に答える