Ios 处理核心数据关系和分段
在我的应用程序中,我试图显示我通过Ios 处理核心数据关系和分段,ios,swift,core-data,Ios,Swift,Core Data,在我的应用程序中,我试图显示我通过prepareForSegue的特定药物的日期。然后我想准备一个数组,其中只包含与我传递的药物名称相关的日期。如何准备这样的打球 我的模型: extension Dates { @NSManaged var date: NSDate? @NSManaged var takes: Medicine? } extension Medicine { @NSManaged var amount: String? @NSManaged var endDate: S
prepareForSegue
的特定药物的日期。然后我想准备一个数组,其中只包含与我传递的药物名称相关的日期。如何准备这样的打球
我的模型:
extension Dates {
@NSManaged var date: NSDate?
@NSManaged var takes: Medicine?
}
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?
}
在viewDidLoad中,我尝试按如下方式准备此数组:
var context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let fetchRequestDate = NSFetchRequest(entityName: "Dates")
let fetchRequestMedicine = NSFetchRequest(entityName: "Medicine")
var medicine : Medicine?
var dates = [NSDate]()
override func viewDidLoad() {
super.viewDidLoad()
do {
fetchRequestDate.predicate = NSPredicate(format: "takes.name == %@ ", medicine!.name!)
let resultsDates = try context.executeFetchRequest(fetchRequestDate)
for date in resultsDates {
print(date)
}
} catch let error as NSError {
print(error.userInfo)
}
要稍后在此函数中使用它,请执行以下操作:
func calendar(calendar: CKCalendarView!, configureDateItem dateItem: CKDateItem!, forDate date: NSDate!) {
for dateTaken in dates {
if calendar.date(date, isSameDayAsDate: dateTaken) {
dateItem.backgroundColor = UIColor.redColor()
}
}
}
这几乎是你先前问题的重复。在执行请求之前应用谓词获取请求。你不会说你的代码做错了什么-显示示例数据。现在我从
CoreData
获取所有日期。如何将通过segue传递的特定药物与其日期进行连接(可能使用谓词)?在执行之前应用谓词,然后使用日期关系而不是提取(或在提取日期上设置谓词以限制药物)。我尝试使用如下谓词:fetchRequestDate.predicate=NSPredicate(格式:“takes.name==%@”,medicine!.name!)
,但它引发未捕获的异常,即在Entity中找不到takes.name,因为谓词被写入日期,但您将其设置为medicine