pathForResource? не используя расширение (iPhone)

Вот то, что я делаю, когда я создаю изображение с путем в пакете:


UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"]];

То, что я хочу сделать, пытается найти путь для моего изображения, но не используя расширение, не используя 'ofType' (потому что название моего изображения и ее расширения является хранилищем в моей базе данных), что-то как этот:


UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.jpg"]];

Но я не знаю, как сделать это.

С наилучшими пожеланиями,

17
задан Thomas Zoechling 31 December 2009 в 09:03
поделиться

3 ответа

Почему бы тебе не разделить строку, которую ты получаешь из БД?

NSString* fullFileName = @"image.jpg";
NSString* fileName = [[fullFileName lastPathComponent] stringByDeletingPathExtension];
NSString* extension = [fullFileName pathExtension];

Теперь вы можете просто использовать:

[[NSBundle mainBundle] pathForResource:fileName ofType:extension]];
41
ответ дан 30 November 2019 в 10:10
поделиться
- (NSData *)applicationDataFromFile:(NSString *)fileName {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName];
    NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease];
    return myData;
}

взято с http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/FilesandNetworking/FilesandNetworking.html#//apple_ref/doc/uid/TP40007072-CH21-SW21

Может быть легко адаптировано, если вы хотите, чтобы он возвращал UIImage вместо NSData.

Кроме того, вы не говорите, сохраняете ли вы изображения в каталог документов, или добавление их в ваш пакет приложений перед компиляцией, потому что если это последний, то вы можете использовать [UIImage imageNamed:(NSString *)filename], чтобы получить изображение. Она ожидает расширение как часть имени файла.

.
2
ответ дан 30 November 2019 в 10:10
поделиться

Самый простой способ - хранить имя и тип файла в вашей базе данных отдельно и извлекать их с помощью первого метода, не уверен, что вы сможете успешно реализовать второй способ.

0
ответ дан 30 November 2019 в 10:10
поделиться