2011-08-11 8 views
2

画像の配列があります。画像の名前を配列 から取得したいだけです。iOSのUIImageのNSArrayから画像名を表示する方法

countryArray = [[NSMutableArray arrayWithObjects: 
[UIImage imageNamed:@"india.png"], 
[UIImage imageNamed:@"australia.png"], 
[UIImage imageNamed:@"singapore.png"], 
[UIImage imageNamed:@"america.png"], 
nil] retain]; 


NSLog(@"image name at row %d is '%@'.",1,[countryArray objectAtIndex:1]); 

それはaustralia.pngを示すべきではなく、それは示しています。行1で

イメージ名はUIImageです:0x4b14910

答えて

4

イメージがロードされたらUIImageは、そのファイル名を覚えていません。したがって、プロパティでこれを達成するための直接的な方法はありません。 myImage.name

別名NSMutableArrayを使用して名前を文字列として保存することもできます。インスタンス

countryStringArray = [[NSMutableArray arrayWithObjects: 
@"india", 
@"australia", 
@"singapore", 
@"america", 
nil] retain]; 

countryImageArray = [[NSMutableArray arrayWithObjects: 
[UIImage imageNamed:[countryStringArray objectAtIndex:0]], 
[UIImage imageNamed:[countryStringArray objectAtIndex:1]], 
[UIImage imageNamed:[countryStringArray objectAtIndex:2]], 
[UIImage imageNamed:[countryStringArray objectAtIndex:3]], 
nil] retain]; 

のためにあなたもcountryImageArrayを移入するforループを利用することができます。

もう1つの方法は、NSMutableDictionaryを使用することです。これは、基本的に同じものであるという事実に、あなたは

countryDictionary = [NSDictionary dictionaryWithObjects:countryImageArray forKeys:countryStringArray]; 

ことによってそれを達成することができますが、それは名前で特定の国の画像を検索の清浄度の面でいくつかの利点を有しています。あなたが最も確かに歓迎している:それを定義するための直接的な方法は、あなたが高速です

[countryDictionary setObject:[UIImage imageNamed:@"india.png"] forKey:@"india"]; 
[countryDictionary setObject:[UIImage imageNamed:@"australia.png"] forKey:@"australia"]; 
[countryDictionary setObject:[UIImage imageNamed:@"singapore.png"] forKey:@"singapore"]; 
[countryDictionary setObject:[UIImage imageNamed:@"america.png"] forKey:@"america"]; 
+0

一顧...迅速かつ完璧な返信用:-D – kviksilver

+0

感謝:) –

+0

@Mohammadです。これがうまくいく場合は、答えの横にある小さなチェックマークをクリックして「受け入れる」ことができます。このようにして、他の人はそれがあなたを助けたことを知り、私たちはどちらも評判のポイントを獲得します。あなたのアプリの運が良かった! – PengOne

関連する問題