Kann ich eine NSURL aus einem XCAssets-Bundle erhalten?

Ich bin in einer Situation, in der ich Anhänge aus einer Nachricht aufliste. Jeder Anlage ist eine NSURL zugeordnet, die einen Pfad zu den Anlagendaten darstellt. Im Fall von Anhängen, die keine Bilder sind, möchte ich vorgenerierte Symbol-Miniaturansichten anstelle einer Vorschau laden (d. H. Excel-Dokumente, PDF, Word usw.).

Ich habe diese Bilder derzeit in meinem Projekt in einem XCAssets-Bundle. Ich kann sie damit erreichen[UIImage imageNamed:@"someName"]. Ich kann sie nicht über die verschiedenen Ressourcen-Suchmethoden von NSBundle finden. Verändert das XCAssets-Bundle irgendwie die Dateinamen der gesuchten Symbolbilder?

Hier ist der Code, mit dem ich gerade arbeite. Der Pfad ist jedes Mal gleich Null. Muss ich in diesem Fall keine XCAssets verwenden?

+ (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;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage