Могу ли я получить NSURL из пакета XCAssets?
Я нахожусь в ситуации, когда я перечисляю вложения из сообщения. Каждое вложение имеет NSURL, связанный с ним, который представляет путь к данным вложения. В случае вложений, не связанных с изображениями, я хочу загружать предварительно созданные миниатюры значков в месте предварительного просмотра (т.е. документы Excel, PDF, Word и т. Д.).
В настоящее время у меня есть эти изображения в моем проекте, в комплекте XCAssets. Я могу добраться до них используя[UIImage imageNamed:@"someName"]
, Я не могу понять их с помощью различных методов поиска ресурсов NSBundle. Меняет ли пакет XCAssets имена файлов изображений значков, которые я ищу?
Вот код, с которым я сейчас работаю. Путь нулевой каждый раз. Нужно ли не использовать XCAssets в этом случае?
+ (NSURL *)mediaURLWithMessage:(SRMediaMessage*)message
{
NSURL *url = message.mediaURL;
// if this is an image URL or non-existant, there is no work left to do, return it.
if (!url || (message.secureFile.secureFileMimeType & SRSecureFileMimeTypeImage))
return url;
NSString *filename = @"unknown";
switch (message.secureFile.secureFileMimeType)
{
case SRSecureFileMimeTypeDOC:
filename = @"doc";
break;
case SRSecureFileMimeTypePPT:
filename = @"ppt";
break;
case SRSecureFileMimeTypePDF:
filename = @"pdf";
break;
case SRSecureFileMimeTypeXLS:
filename = @"exl";
break;
case SRSecureFileMimeTypeCSV:
filename = @"csv";
break;
case SRSecureFileMimeTypeTXT:
filename = @"txt";
break;
case SRSecureFileMimeTypeRTX:
filename = @"rtf";
break;
default:
case SRSecureFileMimeTypeMP4:
// unknown icon for now.
break;
// unused but available:
// @"ilife"
}
NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:nil];
if (path)
url = [NSURL fileURLWithPath:path];
return url;
}