Сохранение ввода текста на устройство

Я пытаюсь создать представление, в котором я могу вводить текст в UITextField и сохранять его на устройстве. Я искал разные места и до сих пор получил это ниже, но я не могу пройти мимо этой ошибки. Может кто-нибудь помочь?

Use of unresolved identifier 'yyyytoss'

import UIKit

class WritestoryVC: UIViewController, UITextViewDelegate {
    @IBOutlet weak var myStory : UITextView!

    @IBAction func saveImageToDocumentDirectory(_ chosenImage: UITextField) -> Void {
        let directoryPath =  NSHomeDirectory().appending("/Documents/")
        if !FileManager.default.fileExists(atPath: directoryPath) {
            do {
                try FileManager.default.createDirectory(at: NSURL.fileURL(withPath: directoryPath), withIntermediateDirectories: true, attributes: nil)
            } catch {
                print(error)
            }
        }
        let filename = NSDate().string(withDateFormatter: yyyytoss).appending(".rtf")
        let filepath = directoryPath.appending(filename)
        let url = NSURL.fileURL(withPath: filepath)
        do {
            try UITextField(chosenImage, 1.0)?.write(to: url, options: .atomic)
            return String.init("/Documents/\(filename)")

        } catch {
            print(error)
            print("file cant not be save at path \(filepath), with error : \(error)");
            return filepath
        }
    }
}

Что такое yyyytoss в линейке NSDate().string(withDateFormatter: yyyytoss).appending(".rtf")? Вы это где-нибудь заявляли? А не получается UITextField(chosenImage, 1.0)? Вы используете стороннюю библиотеку? Также заголовок вашего вопроса не совпадает с вашим кодом.

TheTiger 02.05.2018 06:43

1. Не используйте NSHomeDirectory() в iOS. Есть правильные способы получить ссылку на папку «Документы» приложения. 2. Не используйте NSDate в Swift, используйте Date. Не используйте NSURL, используйте URL. 3. Большая часть кода построения вашего пути неверна.

rmaddy 02.05.2018 06:47

Если это тот формат даты, который вам нужен, попробуйте yyyytoss в двойных кавычках "yyyytoss", так как это формат и ожидает строковое значение.

TheTiger 02.05.2018 06:47

@TheTiger "yyyytoss" не является допустимым форматом даты.

rmaddy 02.05.2018 06:48

... и создание Documents в домашней папке излишне. Не делай этого. Это одна из стандартных папок. Прочтите сообщение об ошибке. Это довольно ясно. Где заявлен yyyytoss?

vadian 02.05.2018 06:49

@rmaddy Да, но я предполагаю, что это будет похоже на "2018to59". Хотя очень непонятно, что он хочет делать :)

TheTiger 02.05.2018 06:49

@rmaddy Только что попробовал, это всего лишь год.

TheTiger 02.05.2018 06:54

@TheTiger Вот почему я сказал, что это неверно. Если «к» является буквальным текстом, его необходимо заключить в кавычки: "yyyy'to'ss". Но если учесть год, то слово «до», за которым следуют секунды, вообще не имеет смысла.

rmaddy 02.05.2018 07:00

извините, если это не ясно, я искал способ создать и сохранить текстовый файл rtf через viewcontroller, который использует uitextfield и кнопку создания истории .... но похоже, что этот код устарел

Truls Sønsteby 04.05.2018 22:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
52
1

Ответы 1

Посмотрите, поможет ли это: -

Также там, где вы определяете константу yyyytoss, она должна иметь вид «yyyy-MM-dd».

let file = "file.txt" //this is the file. we will write to and read from it

let text = "some text" //just a text

if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {

let fileURL = dir.appendingPathComponent(file)

//writing
do {
    try text.write(to: fileURL, atomically: false, encoding: .utf8)
}
catch {/* error handling here */}

//reading
do {
    let text2 = try String(contentsOf: fileURL, encoding: .utf8)
}
catch {/* error handling here */}
}

Другие вопросы по теме