NSBundle.mainBundle (). URLForResource ("bach1", mitExtension: "jpg") gibt null zurück

8
%Vor%

Der obige Code gibt null zurück.

Um zu überprüfen, ob die Datei existiert oder nicht, habe ich den folgenden Code verwendet:

%Vor%

Der obige Code gibt zurück, dass die Datei im Verzeichnis existiert.

Also ich verstehe nicht, warum der erste Code null zurückgibt

    
Sukhdeep Singh Kalra 26.02.2015, 17:14
quelle

5 Antworten

12

Ihr Problem ist, dass NSBundle.mainBundle (). URLForResource ("bach1", mitExtension: "jpg") eine optionale NSURL zurückgibt. Sie müssen verwenden, wenn Sie es entpacken und Ihren Dateipfad von der zurückgegebenen URL wie folgt extrahieren:

%Vor%     
Leo Dabus 26.02.2015, 19:13
quelle
8
  

Swift 3.x

%Vor%     
Rajan Maheshwari 28.09.2016 04:07
quelle
2

NSBundle.URLForResource gibt nur Dateien zurück, die zum Zeitpunkt des Kompilierens / Kompilierens in Ihrer Anwendung gebündelt sind, z. B. wenn Sie eine Datei in Ihr Xcode-Projekt ziehen und sie Ihrem App-Ziel hinzufügen. Sie können dies in der Regel verwenden, wenn Ihre App über vorinstallierte Ressourcen wie Bilder, Filme, Datenbanken und andere Dateien verfügt.

Es scheint, dass savepath ein Pfad ist, an den Ihre Anwendung geschrieben hat, während sie ausgeführt wurde (möglicherweise in das Dokumentenverzeichnis Ihrer App?). Aus diesem Grund befindet sich die Datei außerhalb des Bundles und Sie müssen diesen Pfad / URL irgendwo speichern (oder erneut erstellen), wenn Sie in Zukunft auf die Datei verweisen müssen.

    
Warota 26.02.2015 17:30
quelle
2

Ich habe festgestellt, dass du tatsächlich in Build-Phasen einsteigen musst - & gt; Kopieren Sie Bundle-Ressourcen und fügen Sie Ihren Artikel manuell dem Bundle hinzu. In meinem Fall war es eine Videodatei, die nicht einzeln zum Bundle hinzugefügt wurde.

    
Unome 08.12.2016 18:18
quelle
1

Ich hatte dieses Problem auch. Meine Lösung war:

  • Auswählen der Datei im Projektnavigator
  • Öffnen Sie den Dateiinspektor (auf der rechten Seite)
  • Überprüfen des App-Ziels in der Zielmitgliedschaft
Hayden Malcomson 02.03.2017 00:08
quelle

Tags und Links