Хранить дневные значения индивидуально в основных данных - PullRequest
0 голосов
/ 07 июня 2019

У меня есть 7 кнопок для дней недели, которые имеют теги от 1 до 7. Мне нравится сохранять эти значения в основных данных при нажатии.Поскольку массивы недопустимы в основных данных, как мне отдельно хранить их в основных данных?

Изначально я получал теги от кнопки, подобные этим

@IBAction func dayButtonPressed(_ sender: Any) {
        guard let button = sender as? UIButton else { return }

    if(dayTag.contains((sender as AnyObject).tag!)) {
        if let index = dayTag.firstIndex(of: (sender as AnyObject).tag!) {
            dayTag.remove(at: index)
        }
    } else {
        dayTag.append((sender as AnyObject).tag!)
    }
}

, и сохранял их в основных данных следующим образом

  object.setValue(dayTag, forKey: "days")

Я не понимаюкак создать 7 отдельных переменных и сохранить их в основных данных при нажатии кнопки.Любая, помощь в этом направлении будет принята.

1 Ответ

1 голос
/ 07 июня 2019

Разумным решением является вычисляемое свойство.

Объявить дни как

@NSManaged var days: String

и объявить вычисляемое свойство

var weekdays : [Int] {
    get { return days.components(separatedBy: ",").map{Int($0)!) }
    set { days = newValue.map(String.init).joined(separator: "," }
}

Установка weekdays преобразует массив Int в строку через запятую и обновляет days (и наоборот).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...