Inserire un NSString nel pathForResource di NSBundle?
-
22-07-2019 - |
Domanda
Questo anima l'UIImageView nel impactdrawarray:
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"]];
}
Non appare nulla con questo:
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"]];
Il mio riferimento per l'utilizzo di NSString (esempio)
NSString *myString23 = [NSString stringWithFormat:@"$%d", money];
moneylabel.text = myString23;
Come posso usare una variabile nel nome del file? C'è un modo per caricare un'immagine in una cartella di risorse per indice? qualcosa come imageByIndex: currentanimationframe
? Non ho visto nulla nella documentazione di UIImage.
Risposta ai commenti:
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"]];
e
NSString *imagename = [NSString stringWithFormat:@"A%d", ((impact *) [impactarray objectAtIndex:iv]).animframe];
UIImage *myImage = [UIImage imageNamed:imagename];
((UIImageView *) [impactdrawarray objectAtIndex:iv]).image = myImage;
Sia compilazione che esecuzione, ma l'immagine non viene visualizzata.
Soluzione
Usa + stringWithFormat:
, proprio come nel tuo esempio:
[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"explosion%d", myString2] ofType:@"png"];
Altri suggerimenti
NSString* imageName = [self dynamicallyCalculateImageNameUsingCrazyMath];
UIImage* myImage = [UIImage imageNamed:imageName];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow