1
Image Array=[NSArray arrayWithObjects:[UIImage imageNamed:@"1 (1).gif"],
            [UIImage imageNamed:@"1 (2).gif"],[UIImage imageNamed:@"1 (3).gif"],[UIImage imageNamed:@"1 (4).gif"],[UIImage imageNamed:@"1 (5).gif"],[UIImage imageNamed:@"1 (6).gif"],[UIImage imageNamed:@"1 (7).gif"],nil];

//here is another array of objects showing in table view

alphabetsArray =[[NSMutableArray alloc]initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z",nil];
    //everything working fine until when i add this code,app crashes with SIGABRT
cell.imageView.image=[UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];

実際には、さらにいくつか質問する必要があります。

  1. 配列内の画像の数がテーブルビュー内のオブジェクトの数と等しくない場合、問題はありますか?
  2. uiimage imageNamed:"whatever.jpeg" 以外の数が膨大な場合、画像を追加する他の方法はありますか
  3. フォルダーを追加してそのアドレスまたは名前を指定すると、それ自体で画像を取得するとどうなりますか..
  4. 数が250の場合、プロジェクトに画像を追加する最も合理的な方法は何ですか(つまり、プロジェクトのsqlite、coreData、ハードコード)?
4

5 に答える 5

3

まず、この行に問題があり[UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]]ます。

現在の[imageArray objectAtIndex:indexPath.row]実装では UIImage オブジェクトが返されており、UIImage オブジェクトの名前で UIImage を取得しようとしています。

UIImage オブジェクトを cell.imageView.image に直接返すだけです。

cell.imageView.image = [imageArray objectAtIndex:indexPath.row];

2 つ目は、テーブルに何行あるかわかりませんが、インデックスが配列内の要素数よりも多い場合、メソッド objectAtIndex が例外をスローし、アプリがクラッシュする可能性があります。

于 2013-05-23T15:52:35.283 に答える
1

実際、私は何かを考え出しました。簡単な方法があります。

cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.gif", [TextShownInTableArray objectAtIndex:indexPath.row]]];

この配列にはアルファベットがあり、アルファベットごとに異なる画像を使用したかったので、アルファベットと同じ名前の画像をプロジェクトに追加しました。このコード行でうまくいきました。TextShownInTableArray は、テキストを含む配列です:)

于 2013-05-27T10:25:42.193 に答える
1

1) 同じ番号を持ちたい場合を除き、これで問題はありません。エラーはスローされませんが、アプリのロジックは正しく機能しません。

2)私が知っていることではありませんが、これを行うのは簡単ですが、次のような簡単な命名規則を使用してimage01ください。そうすれば、コードをコピーして貼り付けて、画像の末尾の番号を変更できます

3) あなたが何を求めているのかよくわかりません。

4) 通常、ファイルを介して、またはファイルを選択して、プロジェクトに画像を追加するだけdrag-N'-dropで済みます。コア データと sqlite は、開発中の実際のアプリ用であり、Xcode に画像を保存するためのものではありません。

主な質問については、から画像を表示したいと言います。NSArrayその場合は、テーブルビューのインデックスパスを取得し、対応する画像を検索しますobjectAtIndex:

それが少し役立つことを願っています:)

于 2013-05-23T15:49:48.633 に答える
0
cell.imageView.frame = CGRectMake(5, 5, 50, 50);

NSString *imgstr = [[Arr objectAtIndex:indexPath.row] objectForKey:@"thumb"];

cell.imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imgstr]]];
于 2013-05-24T12:34:06.507 に答える