我处于从邮件中列出附件的情况。每个附件都有一个与之关联的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/

10-10 17:14