2009-06-24 6 views
0

Это одушевляет UIImageView в impactdrawarray:Вставка NSString в pathForResource NSBundle?

if (((impact *) [impactarray objectAtIndex:iv]).animframe == 70){ 
    ((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = 
      [UIImage imageWithContentsOfFile: 
         [[NSBundle mainBundle] pathForResource:@"explosionA71" 
                 ofType:@"png"]]; 
} 
if (((impact *) [impactarray objectAtIndex:iv]).animframe == 71){ 
     ((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = 
         [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] 
             pathForResource:@"explosionA72" 
               ofType:@"png"]]; 
} 

Ничто не появляется с этим:

NSString *myString2 = 
      [NSString stringWithFormat:@"A%d", 
        ((impact *) [impactarray objectAtIndex:iv]).animframe; 

((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = 
        [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] 
            pathForResource:(@"explosion%d", myString2) 
               ofType:@"png"]]; 

Моя ссылка для использования NSString (пример)

NSString *myString23 = [NSString stringWithFormat:@"$%d", money]; 
moneylabel.text = myString23; 

Как я могу использовать переменную в имени файла? Есть ли способ загрузить изображение в папку ресурса по индексу? что-то вроде imageByIndex:currentanimationframe? Я не видел ничего в документации UIImage.

Ответ на комментарии:

NSString *myString2 = [NSString stringWithFormat:@"A%d", ((impact *) [impactarray objectAtIndex:iv]).animframe]; 
    ((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"explosion%d", myString2] ofType:@"png"]]; 

и

   NSString *imagename = [NSString stringWithFormat:@"A%d", ((impact *) [impactarray objectAtIndex:iv]).animframe]; 
       UIImage *myImage = [UIImage imageNamed:imagename]; 

       ((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = myImage; 

Как скомпилировать и запустить, но изображение не показывает.

+0

Что вы пробовали? Высказывание «это не работает» не особенно полезно без каких-либо дополнительных объяснений. –

+0

Два блока кода ниже «Ответ на комментарии» - это то, что я пробовал. Оба компилируются и запускаются, но изображение отсутствует. – user128526

ответ

2

Использование +stringWithFormat:, так же, как в вашем примере:

[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"explosion%d", myString2] ofType:@"png"]; 
+0

NSString * myString2 = [NSString stringWithFormat: @ "A% d", ((impact *) [impactarray objectAtIndex: iv]). Animframe]; \t ((UIImageView *) [impactdrawarray objectAtIndex: iv]). Image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: [NSString stringWithFormat: @ "Взрыв% d", myString2] ofType: @ "png"]]; Все еще ничего не отображается (все еще компилируется ОК) – user128526

0
NSString* imageName = [self dynamicallyCalculateImageNameUsingCrazyMath]; 
UIImage* myImage = [UIImage imageNamed:imageName]; 

 Смежные вопросы

  • Нет связанных вопросов^_^