Вот то, что я делаю, когда я создаю изображение с путем в пакете:
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"]];
То, что я хочу сделать, пытается найти путь для моего изображения, но не используя расширение, не используя 'ofType' (потому что название моего изображения и ее расширения является хранилищем в моей базе данных), что-то как этот:
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.jpg"]];
Но я не знаю, как сделать это.
С наилучшими пожеланиями,
Почему бы тебе не разделить строку, которую ты получаешь из БД?
NSString* fullFileName = @"image.jpg";
NSString* fileName = [[fullFileName lastPathComponent] stringByDeletingPathExtension];
NSString* extension = [fullFileName pathExtension];
Теперь вы можете просто использовать:
[[NSBundle mainBundle] pathForResource:fileName ofType:extension]];
- (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;
}
Может быть легко адаптировано, если вы хотите, чтобы он возвращал UIImage вместо NSData.
Кроме того, вы не говорите, сохраняете ли вы изображения в каталог документов, или добавление их в ваш пакет приложений перед компиляцией, потому что если это последний, то вы можете использовать [UIImage imageNamed:(NSString *)filename]
, чтобы получить изображение. Она ожидает расширение как часть имени файла.
Самый простой способ - хранить имя и тип файла в вашей базе данных отдельно и извлекать их с помощью первого метода, не уверен, что вы сможете успешно реализовать второй способ.