2015-04-24 10 views
7

Die einfachste Möglichkeit, ein lokales UIImage Asset zu laden, ist natürlich +[UIImage imageNamed] zu verwenden, aber für meinen Fall möchte ich ein NSURL * liefern. Wie bekomme ich eine NSURL * für lokale Datei?Wie erstellt man eine NSURL für ein Bild in Image.xcassets?

+1

Wenn es in Ihrem Bild-Assets ist, sollten Sie keine NSURL verwenden müssen ... – Zolnoor

+1

Einfach gesagt gibt es keine Möglichkeit als solche. –

+1

"Ich muss einen NSURL * liefern" Nein, tust du nicht. – matt

Antwort

6

Während Sie xcasset verwenden, legt Xcode alle Ihre Dateien in eine neue. 1 Datei, um alle zu verwalten. Sie können also nicht direkt auf einen Bildspeicher in einem xcasset zugreifen. Von Apfel documentation:

Für Projekte mit einem Implementierungsziel von mindestens iOS 7 oder O X 10.9, Xcode kompiliert Ihre Asset-Kataloge in einen Runtime-Binärdateiformat , die die Download-Zeit für Ihre Anwendung reduziert.

Wenn Sie auf die Datei zugreifen, haben Sie zwei Wahl:

  • nicht die xcasset für dieses Bild Verwenden Sie, aber Ihr Bild als ein normales Bild in Ihrem Projekt setzen und die Verwendung NSBundle es
  • Verwenden UIImage imageNamed, zu erhalten und es in dem Verzeichnis Ihrer Wahl

Aber was auch immer Ihre Notwendigkeit zu sparen, sollten Sie eine andere Art und Weise denken, es zu verwalten. Die obigen Lösungen werden funktionieren, aber ich bin mir sicher, dass Sie eine bessere Lösung haben können.

Verwandte Themen