ios - 在核心数据中单独存储日期值

标签 ios swift core-data

我有 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: "," }
}

设置 weekdaysInt 数组转换为逗号分隔的字符串并更新 days(反之亦然)。

关于ios - 在核心数据中单独存储日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495846/

相关文章:

ios - 重写方法未被调用

ios Swift 图表问题

ios - 对 NSURLRequest 进行排队以模拟同步、阻塞请求

ios - Firebase Analytics 持续跟踪 UINavigationController

swift - 检查WKInterfaceTimer是否达到0

iphone - 在 iPhone IOS 上使用 RestKit 保存/删除本地对象

iOS NSArray、NSSet 与核心数据查询(获取请求)

ios - View 内部的 TableView , View Controller 内部。最好的方法是什么?

swift - 我试图将变量从 UITabController 传递到 UIViewController 但没有运气?

core-data - 当 SwiftUI 中的相关实体发生更改时,如何更新 @FetchRequest?