ios - 循环核心数据关系

标签 ios swift core-data

在我的 calendarViewController 中,我想准备一个包含日期的数组。在我的模型中,我有 to-may 关系,其中一种药物可以有多个服药日期。我如何通过该集合执行循环以附加数组? 我的模型:

extension Medicine {

@NSManaged var amount: String?
@NSManaged var endDate: String?
@NSManaged var name: String?
@NSManaged var time: String?
@NSManaged var notificationSet: NSNumber?
@NSManaged var taken: NSOrderedSet?

}

模型日期

extension Dates {

@NSManaged var date: NSDate?
@NSManaged var takes: Medicine?

}

我想执行这样的循环,但我想要来自 CoreData 的这些日期:

var dates = [NSDate(timeIntervalSinceNow: 60*60*24*2), NSDate(timeIntervalSinceNow: 60*60*24*3), NSDate(timeIntervalSinceNow: 60*60*24*5), NSDate(timeIntervalSinceNow: 60*60*24*7)]

func calendar(calendar: CKCalendarView!, configureDateItem dateItem: CKDateItem!, forDate date: NSDate!) {


    for dateTaken in dates {
        if calendar.date(date, isSameDayAsDate: dateTaken) {
            dateItem.backgroundColor = UIColor.redColor()
        }
    }

}

最佳答案

获取您的 Medicine 实体,然后创建如下数组:

let dates = medicine.taken.map { $0.date }

不确定NSOrderedSet,它往往有问题,所以我通常会避免它,但你可以尝试附加as! [NSDate] 确保您拥有正确的日期数组。

关于ios - 循环核心数据关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712433/

相关文章:

ios - 使用 openCV IPLimage __block 的 dispatch_async 出现 EXC_BAD_ACCESS 问题

ios - 在 Swift 中完成下载后设置文件名

null - nil 和 Optional<T>.None 在 Swift 中是一回事吗?

ios - 检查 Core Data managedObject 中的多个 nil 值?

ios - 如何从完成 block 返回值以在其他 viewController 中使用它?

ios - "L"的 Swift 数据类型代表什么?

swift - USDZ 文件在 Xcode 中是黑色的

ios - 有什么方法可以获取我的 TableView 中的数据来计算并保持总计

swift - 将屏幕截图保存到 CoreData

core-data - 解包可选值时意外发现 nil - Swift