iPhone загрузить изображение без расширения - PullRequest
0 голосов
/ 09 июля 2010

У меня есть эта проблема ... Мне нужно загрузить изображение из ресурсов моего приложения, которое называется, например, mystuff01.jpg, но, может быть, оно будет называться mystuff01.gif или png. Какое решение лучше всего сделать для этого? На мой взгляд, есть цикл для извлечения, если файл существует, и если существует, загрузить его ... есть лучшее решение? спасибо

Ответы [ 3 ]

2 голосов
/ 12 января 2011

Если вы загружаете файл из файловой системы, а не из пакета, вы можете использовать это:

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
1 голос
/ 09 июля 2010

С UIImage

В iOS 4 и более поздних версиях файл не требуется указывать расширение файла До iOS 4, Вы должны указать имя файла расширение.

В противном случае вам придется попробовать каждое расширение. Вы можете передать имя с каждым расширением непосредственно [UIImage imageNamed:], найти то, которое работает с [mainBundle pathForResource:ofType:];, или использовать NSFileManager, чтобы получить список ресурсов и найти наиболее близкое соответствие.

1 голос
/ 09 июля 2010

Я думаю, что одним из решений является создание NSArray {@ ". Jpg", @ ". Png"}, цикл по массиву и добавление расширения к имени файла, а затем проверка, существует ли имя файла + расширение. , а затем загрузить его. Это будет легче сделать, и это можно сделать с помощью цикла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...