gpt4 book ai didi

swift - 对象作为错误 - CoreData 关系

转载 作者:行者123 更新时间:2023-11-30 13:45:50 26 4
gpt4 key购买 nike

我有 2 个实体:

  1. 都都
  2. 日期

它们以逆关系连接,因此一个 Todo 对象可以有多个 Date,因此 Todo 具有属性:

@NSManaged var dates: NSSet?
@NSManaged var name: String?

每个 Dates 对象可以有一个 Todo,因此它具有属性:

@NSManaged var todo: Todo?
@NSManaged var wasDone: NSNumber? //It is a boolean
@NSManaged var date: NSDate?

当我创建 Todo 时,我在实体名称中插入新对象。

//Saving into local device context
guard let ourcontext = self.context else {print("no context");return}
guard let newTodo = NSEntityDescription.insertNewObjectForEntityForName("Todo", inManagedObjectContext: ourcontext) as? Todo else {return}
let myTodoName = self.addTodoView.searchTextField.text
newTodo.name = myTodoName

然后我计算日期,并将它们插入到 Todo 的 NSSet 中(我在 Todo 中做了一个函数:

func addObject(value: Dates) {
let dates = self.mutableSetValueForKey("dates")
dates.addObject(value)
}

所以在计算日期并创建它们的“datesArray”之后,我想将它们添加到上面提到的 NSSet 中:

for _ in self.datesArray {
guard let newDate = NSEntityDescription.insertNewObjectForEntityForName("MedicineDates", inManagedObjectContext: ourContext) as? MedicineDates else {return}

newTodo.addObject(newDate)

这是第一个问题 - 我是否正确创建了对象之间的关系?

然后我想从 Todo 的 NSSet 创建一个数组(在 cellForRowAtIndexPath 中,因为它显示在 tableView 中):

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as! TodoTableViewCell
guard let object = fetchedResultsController?.objectAtIndexPath(indexPath) as? Todo else {return cell}

NS设置为数组:

let fetchedData = object.dates?.allObjects as! [Dates]
let datesArray = [NSDate]()
for object in fetchedData {
datesArray.append(object.date!)
}

这就是繁荣。当我尝试解开 object.date 时,它​​告诉我“解开可选值时意外发现 nil”,但我知道存在带有“Date”类型对象的 fetchedData 。

我做错或没做的事情是什么?

最佳答案

该错误表明,虽然 Dates 对象存在,但其 NSDate 类型的 date 属性不存在。

通过设置其 date 属性并保存上下文,确保您正确创建了 Dates 对象。

关于swift - 对象作为错误 - CoreData 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34952514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com