2010-07-09 7 views
0

J'ai ce problème ... J'ai besoin de charger une image à partir des ressources de mon application qui s'appelle par exemple mystuff01.jpg mais peut-être s'appeler mystuff01.gif ou png, maintenant, quel est le meilleur solution pour le faire? Dans mon esprit, il y a un cycle pour récupérer si le fichier existe et si existe le charger ... il y a une meilleure solution? merciiPhone charger l'image sans extension

Répondre

1

Je pense que l'une des solutions consiste à créer un NSArray {@ ". Jpg", @ ". Png"}, faire une boucle dans le tableau et ajouter l'extension au nom du fichier, puis vérifier si le nom du fichier + extension existe, alors vous le chargez. Il sera plus facile de le faire, et peut être fait avec boucle

+0

oui, voilà ce que je pense .. Je vais essayer – ghiboz

1

De UIImage

Sur iOS 4 et plus tard, le nom du fichier n'est pas nécessaire de préciser l'extension de nom de fichier . Avant iOS 4, , vous devez spécifier l'extension de nom de fichier .

Sinon, vous devez essayer chaque extension. Vous pouvez passer le nom avec chaque extension directement à [UIImage imageNamed:], en trouver un qui fonctionne avec [mainBundle pathForResource:ofType:];, ou utiliser NSFileManager pour obtenir une liste de ressources et rechercher la correspondance la plus proche.

2

Si vous chargez le fichier à partir du système de fichiers et non le paquet, alors vous voudrez peut-être utiliser:

NSString *assetsDirectory = [....] // your base asset directory, e.g. documents directory 
NSArray *extensions = [NSArray arrayWithObjects:@"png", @"jpg", @"jpeg", nil]; 
NSFileManager *fm = [NSFileManager defaultManager]; 
NSString *storageLocation = nil; 
for (NSString *ext in extensions) { 
    NSString *testLocation = [NSString stringWithFormat:@"%@/mystuff.%@", assetsDirectory, ext]; 
    if ([fm fileExistsAtPath:testLocation]) { 
     storageLocation = testLocation; 
     break; 
    } 
} 

// file name is in "storageLocation" now 
Questions connexes