Я создаю приложение меню в Swift, чтобы прочитать последнюю строку из файла журнала. Я могу загрузить журнал в массив, но нужно обновить его, желательно автоматически. Как мне получить его, чтобы обновить мой массив? И как мне вызвать это автоматически?
Приложение представляет собой пункт меню. Когда вы щелкаете по нему, появляется окно с текстовым полем, в котором отображается последняя запись в массиве logList
. Функция logList.init
находится в функции viewDidLoad
. Я попытался переместить это на viewWillLoad
, но без изменений. Я попытался объявить это с помощью функции .init
только в классе, а затем повторил это в viewDidLoad
с didset
в исходном объявлении, которое обновляет текстовое поле. По-прежнему загружается только при первом открытии.
Объявление переменной:
public var logList = LogLine.init(logLocationSTRING: " ") {
didSet{
latestLog = logList.logLines[(logList.logLines.count)-2]
logLabel.stringValue = latestLog ?? "No logs found."
}
}
Инициализация:
override func viewDidLoad() {
super.viewDidLoad()
logList = LogLine.init(logLocationSTRING: "file:///some/log/file.log")
}
Структура берет строковое значение URL-адреса файла и преобразует его в пригодный для использования URL-адрес, загружает содержимое журнала в переменную, а затем преобразует это содержимое в массив, каждая строка которого является отдельным элементом.
Я ожидаю после закрытия окна и его повторного открытия, что он должен повторно вызвать функцию .init и обновить содержимое переменной logList
, но это не так. Переменная никогда не изменится, пока я не выйду из приложения и не открою его снова.