#ios #swift #iphone #xcode
Вопрос:
У меня есть этот код для записи строки в текстовый файл в каталоге документов моего приложения по умолчанию, но в моей консоли ничего не печатается, и файл не создается. Что я здесь упускаю?
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
struct ContentView: View {
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
print(paths)
return paths[0]
}
var body: some View {
Text(" Text that is written to file")
.onTapGesture {
let str = "This is a test message"
let url = self.getDocumentsDirectory().appendingPathComponent("ARData.txt")
do{
try str.write(to: url, atomically: true, encoding: .utf8)
let input = try String(contentsOf: url)
print(input)
} catch{
print(url)
}
}
}
}
}
Комментарии:
1. Внимательно посмотрите на getDocumentsDirectory(). Проверьте тип данных внутри него.
2. Код верен и должен работать. Но он ничего не показывает, если он выполняется на холсте предварительного просмотра. Вы должны запустить его в симуляторе. @RB Нет необходимости создавать файл явно.
3. @vadian спасибо :), я просто забыл, что это не каталог, а файл, который он создаст, добавив путь.
4. @vadian У меня он работает на моем iPhone, так что это не должно быть проблемой с симулятором. Может быть, я ищу файл не в том каталоге?
5. Как я уже сказал, код действителен (похоже, от взлома с помощью Swift). Это что-нибудь показывает?