Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 处理核心数据关系和分段_Ios_Swift_Core Data - Fatal编程技术网

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