NSDictionary構造を含むplistを作成しました。キーはラベルです(これはtableview cell.textを設定するために使用します)。値は、「動的に」cell.imageを設定するために使用するファイル名です。正確なpngファイル名がプロジェクトに読み込まれます。UIImageを使ってcell.imageを設定しようとしたときに困惑しました:imageNamed:
私は思ったほど簡単にするために、plistをNSDictionaryにロードしてから、それを2つの配列に(allKeysとallValuesを使用して)取り出します。細胞画像を設定しようとして
は、私はこの作品、なぜ理解しない:
cell.image = [UIImage imageNamed:@"bad.png"];
、これがない(シミュレータで - 私はアプリのクラッシュを取得し、デバッガでbarfing):
cell.image = [UIImage imageNamed:[rowImageList objectAtIndex:indexPath.row]];
この次の行をコードの2番目の部分の直前に置くことができ、うまく動作するので、objectAtIndexからNSStringを取得しているようです。
NSLog(@"Image name: %@", [rowImageList objectAtIndex:indexPath.row]);
私はtemp NSStringを作成して[rowImageList objectAtIndex:]を割り当ててから、そのNSStringを使ってimageNamed:を供給してみました。
- [NSCFArray長さ]:ここ
デバッガからいくつかの情報である 「*:未認識セレクタによりキャッチされない 例外 'NSInvalidArgumentException'、理由にアプリを終了インスタンスに0x262d910
を送信しました** - [NSCFArray length]:認識できない セレクタがインスタンスに送信されました0x262d910 '
Let me k今あなたはもっと情報/コードが必要な場合。
編集:ここで私はrowImageListを移入方法は次のとおりです。
NSArray *myRowImages = [[NSArray alloc] init];
myRowImages = [searchFilterList allValues];
self.rowImageList = [myRowImages copy];
[myRowImages release];
//where searchFilterList is an NSDictionary that I loaded from a plist
は、ここに私のplistのスクリーンショットです: は[IMG] http://i42.tinypic.com/14uwffa.jpg http://i42.tinypic.com/14uwffa.jpg [/ IMG]
編集:改訂rowImageList人口:
NSMutableArray *myRowImages = [[NSMutableArray alloc] init];
NSEnumerator *enumerator = [searchFilterList objectEnumerator];
id object;
while ((object = [enumerator nextObject])) {
[myRowImages addObject:[object objectAtIndex:0]];
}
self.rowImageList = myRowImages; //edit: added self. prefix
[myRowImages release];
ええと...私は物事を再チェックする必要があります。 rowImageListは配列ですが、NSStringを配列(NSStringオブジェクトの配列)に 'プッシュ'していると仮定しました。 rowImageListに値を設定する方法は次のとおりです。 \t NSArray * myRowImages = [[NSArray alloc] init]; \t myRowImages = [searchFilterList allValues]; \t self.rowImageList = [myRowImages copy]; \t [myRowImages release]; - searchFilterListはplistからロードしたNSDictionaryです。 – kindaran
善良な主人は、その形式をうまくできませんでした。 – kindaran
あなたがフォローしている場合、私はついに を変更しました。 "rowImageList = myRowImages;" 〜 "self.rowImageList = myRowImages;" 後でコード内でrowImageListを使用しようとすると、変わったことが起こっていました。 – kindaran