Webから.txtファイルを取得し、2次元配列に解析するアプリケーションを作成しています(実際はNSMutableArrayに各要素のNSArrayがあります)。 UITableView内のNSArray(各NSArrayはサブラベルを使用してロードされます)。私は(16のインデックス)アプリのクラッシュ... 17セルまでスクロールしたら17th uitableviewcellに到達するとアプリケーションがクラッシュする
とにかく、
のUITableViewは、(テスト目的のために)483個の細胞を持っている必要がありますが、私は過去をスクロールするように見えることはできませんそれがクラッシュすることなく16番目のセル。
編集コードとエラーを投稿します
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[[tableView layer] setCornerRadius:3.0];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"identifier"]autorelease];
}
NSInteger artistIndex = 1;
NSInteger albumIndex = 3;
NSInteger dateIndex = 6;
NSInteger imageIndex = 5;
// ARTIST
CGRect frame = CGRectMake(59, 11, 244, 13);
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.font = [UIFont boldSystemFontOfSize:13];
label.textColor = [UIColor blackColor];
label.text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:artistIndex];
[cell addSubview:label];
// ALBUM (more like description...
frame = CGRectMake(60, 30, 244, 11);
label = [[UILabel alloc]initWithFrame:frame];
label.font = [UIFont boldSystemFontOfSize:11];
label.textColor = [UIColor darkGrayColor];
label.text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:albumIndex];
[cell addSubview:label];
// DATE
frame = CGRectMake(59, 49, 244, 10);
label = [[UILabel alloc]initWithFrame:frame];
label.font = [UIFont fontWithName:@"Helvetica" size:10.0];
label.textColor = [UIColor darkGrayColor];
label.textAlignment = UITextAlignmentRight;
label.text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:dateIndex];
[cell addSubview:label];
// IMAGE
NSString *urlString = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:imageIndex];
NSData *urlData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage *myImage = [[UIImage alloc]initWithData:urlData];
UIImageView *myImageView = [[UIImageView alloc] init];
myImageView.image = myImage;
myImageView.frame = CGRectMake(8,9,44,44);
[myImageView.layer setMasksToBounds:YES];
[myImageView.layer setCornerRadius:3.0];
[[cell contentView] addSubview:myImageView];
[urlData release];
[myImage release];
[myImageView release];
[label release];
return cell;
注:このコードはかなりひどいですように私はあなたたちはそれをクリーンアップする提案があれば、私は聞いてみたい...感じますそれ。 '* - [NSMutableArrayのobjectAtIndex:]:範囲外のインデックス6 [0 .. 3]'
キャッチされない例外により 'NSRangeException'、理由にアプリを終了*:ここ
とエラーメッセージです
あなたが持っている問題を理解するために、最小の例が便利です。 –
クラッシュしたときに受け取ったログステートメントを投稿できますか? –
データソースメソッドとは何かのように見えます。このメソッドのどのラインがクラッシュを引き起こしていますか?私はあなたの問題が別の場所にあると感じています。おそらく、テーブルビュー上のセクションまたは行の数をどのように決定しているのでしょうか。 – Rog