我处于从邮件中列出附件的情况。每个附件都有一个与之关联的NSURL,它代表附件数据的路径。对于非图像附件,我想在预览的位置(即excel文档,PDF,word等)加载预先生成的图标缩略图。
目前,我的项目中的XCAssets bundle 包中包含这些图像。我可以使用[UIImage imageNamed:@"someName"]
来找他们。我似乎无法通过NSBundle的各种资源查找方法来了解它们。 XCAsset bundle 包是否会以某种方式更改我要查找的图标图像的文件名?
这是我目前正在使用的代码。路径每次都是零。在这种情况下,我不需要使用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;
}
最佳答案
如果您的目标是iOS 7+,则Xcode 5现在会将 Assets 放入新的文件格式。所有 Assets 1个文件。这意味着您无法直接访问该文件。
如果您需要直接访问文件,则可以将其作为普通图像包含在 Assets 目录之外。
关于ios - 我可以从XCAssets捆绑包中获取NSURL吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21769092/