0

文字列形式の画像の名前を持つ配列があります。それを画像の配列に変換したいのですが、このエラーが発生しました。何が間違っていましたか?

 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

私のコード:

NSString * immagini = self.chinaTable.images; //unique string

NSArray * arrayImages = [immagini componentsSeparatedByString:@";"]; 
NSLog(@"The images: %@", arrayImages);// here are strings

/*The images: (
"ArchUrb_PortaGenova1.jpg",
"ArchUrb_PortaGenova2.jpg",
"ArchUrb_PortaGenova3.jpg",
"ArchUrb_PortaGenova4.jpg"
)*/

NSMutableArray * mutableImages =[[NSMutableArray alloc]initWithCapacity:20];

for (id obj in arrayImages){

/*The images: (
"ArchUrb_PortaGenova1.jpg",
"ArchUrb_PortaGenova2.jpg",
"ArchUrb_PortaGenova3.jpg",
"ArchUrb_PortaGenova4.jpg"
)*/


 [mutableImages addObject:[UIImage imageNamed:obj]];//here comes the error
  NSLog(@"The array mutable is è %@", mutableImages);
}
NSLog(@"The array of images %@", mutableImages);

self.viewImages.animationImages = [NSArray arrayWithArray:mutableImages];

self.viewImages.animationDuration =3;
self.viewImages.animationRepeatCount= 0;
[self.viewImages startAnimating];
4

3 に答える 3

3

[UIImage imageNamed:]nilアプリ バンドルで要求された画像が見つからない場合に返されます。

次のように、不足している画像をプロジェクトに追加するか、if画像を配列に追加する前に追加します。

for (id obj in arrayImages){
    UIImage *image = [UIImage imageNamed:obj];
    if (image != nil)
    {
        [mutableImages addObject:image];
    }
    NSLog(@"The array mutable is è %@", mutableImages);
}
于 2012-10-25T08:36:02.673 に答える
0

次のようにコード セグメントを変更します。

for (id obj in arrayImages){

    UIImage *image  = [UIImage imageNamed:obj];
    if ( image ) {
       [mutableImages addObject:image];
       NSLog(@"The array mutable is è %@", mutableImages);
    }
}
于 2012-10-25T08:41:30.700 に答える
0

この質問は、次の質問に関連しています: Exception with insertObject:atIndex: on iOS6。ですから、あなたの解決策を見つけるためにそれを読んでください。

于 2014-01-09T04:06:31.077 に答える