我有 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 个单独的变量并在点击按钮时将它们存储到核心数据中。任何方向上的帮助将不胜感激。
最佳答案
合理的解决方案是计算属性。
将天数声明为
@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
(反之亦然)。
关于ios - 在核心数据中单独存储日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495846/