Fid*_*del 2 core-data nsfetchrequest ios swift swift3
我的问题可以应用于任何类型的关系,但在我的情况下,我有一对多.
假设我有一个包含3个对象的实体人:
布赖恩
彼得
斯科特
每个人都可以有很多工作.所以我有一个当前为空的Job实体.两个实体的反向关系已经创建,并且效果很好.只是为了清楚我的问题是没有插入一个对象(我知道该怎么做),是插入的具体方式.
所以更具体的问题是:
如何将一个或多个作业对象插入作业实体并将其中的每一个分配给Core Data中当前存在的一个Person对象?
在尝试了很多东西之后我终于找到了解决方案.感谢Jimmy如何解决这个问题.关键是要意识到你不能分配已经存在的多个(或者至少我找不到办法),但是你可以在现有的对象中添加许多对象.换句话说,您不能将实体分配给Set,也不能相反.
SWIFT 3
因此,第一步是获取要为其分配多个(在本例中为Jobs)的一个对象(在本例中为Person).这会让你到达那里:
var person = try MOC.fetch(Person.fetchRequest()).filter { $0.name == "Brian" }
Run Code Online (Sandbox Code Playgroud)
在第二个步骤是创建工作的管理对象:
let job = Jobs(context: MOC)
job.title = "Computers"
Run Code Online (Sandbox Code Playgroud)
而第三步是添加对象的低谷,你取的人:
person[0].addToJobs(job)
Run Code Online (Sandbox Code Playgroud)
如果要添加多个Job,则可以创建for循环并创建所需的托管对象,并在准备保存时添加它们.例如:
for title in jobsTitles {
let job = Jobs(context: MOC)
job.title = title
person[0].addToJobs(job)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3526 次 |
| 最近记录: |