我在CoreData中创建Task和ToDo之间的关系。每个任务可以包含许多toDos,但toDos只能属于特定任务。如果我删除任务,所有toDos属于该任务也应删除,所以我将关系设置为Cascade。我现在的代码仅用于获取和删除所有toDos。我知道如何将toDos保存到特定任务,但我不知道如何获取和删除它们。我的代码就像得到所有toDos,例如
struct BaseScriptable {
virtual ~BaseScriptable() = default;
virtual BaseScriptable * clone() = 0;
virtual void update() = 0;
};
template<typename D>
struct Scriptable: BaseScriptable {
BaseScriptable * clone() override final {
return new D{*static_cast<D *>(this)};
}
};
struct PlayerScript: Scriptable<PlayerScript> {
void update() override {}
};
int main() {
BaseScriptable *script = new PlayerScript;
BaseScriptable *clone = script->clone();
}
答案 0 :(得分:0)
关于关系
如果您将Task
和ToDo
实体之间的关系分别设为toDos
和task
,那么您将找到{{1}的属性toDos
模型类中的NSSet
类型,Task
模型类中task
类型的Task
。
访问关系
如果您ToDo
类型的对象可以使用Task
轻松获取该任务的toDos
,那么它将返回taskObj.toDos
的{{1}} NSSet
类型。
如果您ToDo
类型的对象可以使用ToDo
轻松获取该问题的task
,则会返回toDoObj.task
。
FOR DELETE
如果删除Task
对象,则与该任务相关的Task
将自动删除。
如果您删除了toDos
个对象,那么它会自动从相应的ToDo
示例代码
Task