Я только начинаю изучать Swift, и чтобы научить себя, я делаю простое приложение для командной строки. В конечном итоге он подключится к онлайн-источнику данных, но сначала я хочу загрузить данные из файла. Я видел различные руководства по чтению содержимого файла в Swift, но ни одно из них, похоже, не работает для меня. Вот мое приложение до сих пор:
import Foundation
// Set the file path
let path = "/Users/username/workspace/Swift/sis/sis/data.json"
do {
// Get the contents
let contents = try String(contentsOfFile: path, encoding: .utf8)
print(contents)
}
catch let error as NSError {
print("Ooops! Something went wrong: \(error)")
}
Запуск его выводов:
Ooops! Something went wrong: Error Domain=NSCocoaErrorDomain Code=260 "The file “data.json” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/username/workspace/Swift/sis/sis/data.json, NSUnderlyingError=0x100e19a50 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Однако на терминале:
$ ls -l /Users/username/workspace/Swift/sis/sis/data.json
-rwxrwxrwx@ 1 username staff 165563 16 Jan 17:14 /Users/username/workspace/Swift/sis/sis/data.json
(да, я немного ослабил права доступа на всякий случай, если это была проблема)
Единственная слегка аномальная вещь, которую я заметил (кроме неточного утверждения о том, что файл не существует), заключалась в том, что когда я копирую и пропускаю путь из вывода XCode в iTerm2, он помещает пробелы между каждым компонентом пути:
(вставленный в виде изображения, копирующий его и вставляющий обратно в эту форму, кажется, скрывает пробелы - в любом случае это, вероятно, не имеет значения)
Любая помощь в выяснении этого будет очень признательна!