Ios 快速-获得一对多关系
假设我们有两个实体: -人员(姓名、年龄等) -房子(颜色) 我们用Ios 快速-获得一对多关系,ios,swift,core-data,one-to-many,fetchrequest,Ios,Swift,Core Data,One To Many,Fetchrequest,假设我们有两个实体: -人员(姓名、年龄等) -房子(颜色) 我们用house.addToPeople(newPeople)记录了每家每户的几次数据 我们想把房子里所有的人都涂成蓝色 我们怎么取这个 我试过这个代码,但它能吸引所有的人 let appD = UIApplication.shared.delegate as! AppDelegate let context = appD.persistentContainer.viewContext
house.addToPeople(newPeople)
记录了每家每户的几次数据
我们想把房子里所有的人都涂成蓝色
我们怎么取这个
我试过这个代码,但它能吸引所有的人
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let peopleFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "People")
let houseFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "House")
houseFetch.fetchLimit = 1
houseFetch.predicate = NSPredicate(format: "color = %@", "blue")
...
let res = try? context.fetch(peopleFetch)
let resultData = res as! [People]
让appD=UIApplication.shared.delegate为!AppDelegate
让context=appD.persistentContainer.viewContext
let peopleFetch=NSFetchRequest(entityName:“人”)
let houseFetch=NSFetchRequest(entityName:“House”)
houseFetch.fetchLimit=1
houseFetch.predicate=NSPredicate(格式:“颜色=%@”,“蓝色”)
...
让我们试试?context.fetch(peopleFetch)
让resultData=resas![人]
如何执行此操作?尝试此功能。它所做的是获取所有人并创建一个包含所有结果的数组
func getAllItems()->[People]?{
let request=NSFetchRequest(entityName:“人”)
request.returnsObjectsAsFaults=false
做{
让结果:NSArray=try context.fetch(请求)作为NSArray
返回(结果为?[人])!
}捕捉错误{
打印(“Errore RECEPERO INFORMIZIONI dal context\n\(错误)”)
}
归零
}
如果要按照特定条件(如颜色)执行搜索,请在请求后使用以下代码:
//我在这里按索引搜索,如果您需要案例指导,请不要犹豫询问
request.predicate=NSPredicate(格式:“index=%d”,currentItem.index)
编辑:实际上,上面的代码只是为了获取所有的人,如果你想根据房子进行搜索,请执行以下操作:
func retrieve()->[人]{
//把所有有特定名字的房子都拿来
let houseRequest=NSFetchRequest(entityName:“House”)
houseRequest.predicate=NSPredicate(格式:“name=%@”,“newName”)//此seearch按名称命名
houseRequest.returnsObjectsAsFaults=false
做{
//将获取的项目放入数组中
let result:NSArray=try context.fetch(houseRequest)作为NSArray
出租房屋=结果为?[房屋]
//从上一个数组中获取人员
让人:[人]?=(houses.people!.allObjects as![人])
返回人
}捕捉错误{
打印(“Errore RECEPERO INFORMIZIONI dal context\n\((错误)))
}
归零
}
试试这个功能。它所做的是获取所有人并创建一个包含所有结果的数组
func getAllItems()->[People]?{
let request=NSFetchRequest(entityName:“人”)
request.returnsObjectsAsFaults=false
做{
让结果:NSArray=try context.fetch(请求)作为NSArray
返回(结果为?[人])!
}捕捉错误{
打印(“Errore RECEPERO INFORMIZIONI dal context\n\(错误)”)
}
归零
}
如果要按照特定条件(如颜色)执行搜索,请在请求后使用以下代码:
//我在这里按索引搜索,如果您需要案例指导,请不要犹豫询问
request.predicate=NSPredicate(格式:“index=%d”,currentItem.index)
编辑:实际上,上面的代码只是为了获取所有的人,如果你想根据房子进行搜索,请执行以下操作:
func retrieve()->[人]{
//把所有有特定名字的房子都拿来
let houseRequest=NSFetchRequest(entityName:“House”)
houseRequest.predicate=NSPredicate(格式:“name=%@”,“newName”)//此seearch按名称命名
houseRequest.returnsObjectsAsFaults=false
做{
//将获取的项目放入数组中
let result:NSArray=try context.fetch(houseRequest)作为NSArray
出租房屋=结果为?[房屋]
//从上一个数组中获取人员
让人:[人]?=(houses.people!.allObjects as![人])
返回人
}捕捉错误{
打印(“Errore RECEPERO INFORMIZIONI dal context\n\((错误)))
}
归零
}
谢谢您的回答
在本例中,“houses”是一个数组,因此我们必须添加一个索引➔ <代码>房屋[0]。人员!。所有对象
非常感谢您的解释。谢谢您的回答
在本例中,“houses”是一个数组,因此我们必须添加一个索引➔ <代码>房屋[0]。人员!。所有对象
非常感谢您的解释。执行房屋取回(houseFetch),另一个与此无关,然后使用people
attribute访问您房屋对象中的人员执行房屋取回(houseFetch),另一个与此无关,然后使用people
属性访问房子对象中的人物