Erhalte Bildpfade von NSBundle in Objective C?

7

Ich habe ungefähr 60 Bilder, die ich in Core Data speichern möchte, 30 davon sind Avatare und haben das Präfix avt_filename_00X.png und 30 von ihnen sind kleiner und haben ein anderes Präfix.

Anstatt alle Bilder als BLOBs in Core Data / SQLite zu speichern, möchte ich die Pfade für jedes gefundene Bild speichern (genau so, wie Sie Bildpfade für eine MySQL-Datenbank speichern würden).

Ich bin mir jedoch nicht sicher, wie ich den Pfad des Bildes wie in NSBundle finden soll.

Ich kann den Pfad zum NSDocumentDirectory über:

abrufen %Vor%

Und ich kann das Bild laden und es zu einem Array hinzufügen.

%Vor%

Aber ich bin mir nicht sicher:

  1. Wie greife ich den Weg, wo der Computer das Bild gefunden hat, sobald es im NSBundle ist?

  2. Wie kann ich sicher sein, dass der Pfad funktioniert, wenn sich die App auf einem Gerät befindet?

Die Idee wäre, alle Bilder in einem Array zu speichern und sie später zu Core Data / SQLite zu verschieben.

    
zardon 28.10.2010, 15:25
quelle

2 Antworten

25

Der richtige Weg, um den vollständigen Pfad zu einer Ressource im Hauptpaket zu erhalten, ist:

%Vor%

(oder Sie können die leere Zeichenfolge für 'ofType' angeben, wenn Sie die Erweiterung in den Ressourcennamen einschließen möchten)

Aber nirgends in den Dokumenten wird garantiert, dass der Pfad über Geräte, Betriebssystem-Iterationen usw. hinweg gleich bleibt. Es ist der Pfad zu dieser Datei aus dem Anwendungspaket in der aktuellen Umgebung, der für die Dauer dieses Laufs gültig bleibt nur von der Anwendung.

Da der Pfad zur Anwendung und damit zu ihren Ressourcen nicht garantiert gleich bleibt, ist es meines Erachtens ausdrücklich unsicher, sie in irgendeiner Weise in eine SQL-Datenbank zu stellen.

Könnten Sie vielleicht ein Schema annehmen, bei dem ein Dateiname, der in / beginnt, ein vollständiger Pfad ist, einer ohne / am Anfang im Bündel, was bedeutet, dass Sie die Logik außerhalb der Datenbank anwenden können? / p>     

Tommy 28.10.2010, 16:17
quelle
2
  

Wie kann ich sicher sein, dass der Pfad es wird?   arbeiten, wenn die App auf einem Gerät ist?

Darin liegt der Haken: Sie können nicht. Am besten lassen Sie die Pfade im Handumdrehen behandeln und speichern stattdessen vielleicht nur die Dateinamen.

    
Philip Regan 28.10.2010 16:12
quelle