Как я могу постоянно сохранять строки текста с течением времени - PullRequest
0 голосов
/ 01 октября 2018

Каждый раз, когда я нажимаю кнопку, я хочу, чтобы текст в метке был сохранен в TextView, и я также хочу сохранить то, что уже есть в текстовом представлении.Вот мой код:

@IBOutlet weak var label: UILabel!
@IBOutlet weak var saved2: UITextView!

@IBAction func sve(_ sender: Any) {
    let savedString = label.text
    let userDefaults = Foundation.UserDefaults.standard
    userDefaults.set(savedString, forKey: "key")
}

override func viewWillAppear(_ animated: Bool) {
    let userDefaults = Foundation.UserDefaults.standard
    let value = userDefaults.string(forKey: "key")
    saved2.text = value
}

Как сохранить новое значение в следующей строке без сброса текстового представления?

1 Ответ

0 голосов
/ 01 октября 2018

Может быть, вы хотите сделать что-то подобное?

protocol TextStorage: class {
    var text: String { get set }
}

final class TextStorageImpl: TextStorage {

    private var storage = UserDefaults.standard
    private let key = "key"

    var text: String {
        get {
            return storage.string(forKey: key) ?? ""
        }
        set {
            var newString = text
            newString.append(newValue)
            storage.set(newString, forKey: key)
        }
    }
}

final class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var saved2: UITextView!

    private let textStorage: TextStorage = TextStorageImpl()

    @IBAction func save(_ sender: Any) {
        if let text = label.text {
            textStorage.text = text
        }
    }

    override func viewWillAppear(_ animated: Bool) {
        saved2.text = textStorage.text
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...