Ich arbeite an einem Befehlszeilentool und versuche, den Pfad einer Liste von Wörtern abzurufen, die in einer Datei namens words.txt gespeichert sind. Die Datei wird dem Projekt hinzugefügt, in der Zielmitgliedschaft des Projekts enthalten und zum Kopieren während der Erstellungsphase der Kopie des Ziels ausgewählt. Innerhalb von Main.swift diesen Code:
%Vor%druckt "Pfad konnte nicht gefunden werden". Ist die MainBundle () - Klassenfunktion das richtige Bundle für den Zugriff? Irgendwelche Gedanken darüber, warum die Funktion pathForResource null zurückgibt?
Um Bundles mit Befehlszeilenwerkzeugen zu verwenden, müssen Sie sicherstellen, dass Sie die Ressourcendateien als Teil der Erstellungsphase hinzufügen. Es klingt, als würdest du das schätzen, aber es nicht richtig ausgeführt haben. Folgendes funktionierte für mich in einer schnellen Demo-App:
Wenn Sie das Projekt erstellen, sollten Sie jetzt mit NSBundle
auf den Pfad der Datei zugreifen können.
Die Befehlszeilentools verwenden keine Bundles, sie sind nur eine rohe ausführbare Datei und sind nicht kompatibel mit der Erstellungsphase der Kopierdateien oder der Klasse NSBundle
.
Sie müssen die Datei irgendwo anders speichern (zB ~/Library/Application Support
).