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
在swift中获取具有一对多关系的coredata_Swift_Core Data - Fatal编程技术网

在swift中获取具有一对多关系的coredata

在swift中获取具有一对多关系的coredata,swift,core-data,Swift,Core Data,我有一个coredata实体的tableview(table1),它显示了一行用户,另一个tableview(table2)显示了与(table1)实体以一对多关系连接的另一个实体。点击(table1)所选行时,(table2)会显示,我的问题是如何为(table1)中所选行的用户显示(table2)上的数据 示例代码: let fetchdata:NSFetchRequest<entity2> = entity2.fetchRequest() do { u

我有一个coredata实体的tableview(table1),它显示了一行用户,另一个tableview(table2)显示了与(table1)实体以一对多关系连接的另一个实体。点击(table1)所选行时,(table2)会显示,我的问题是如何为(table1)中所选行的用户显示(table2)上的数据

示例代码:

 let fetchdata:NSFetchRequest<entity2> = entity2.fetchRequest()
    do {
        userList = try myContext.fetch(fetchdata) [of entity1 object]
    }catch{
        print(error)
    }
let fetchdata:NSFetchRequest=entity2.fetchRequest()
做{
userList=尝试myContext.fetch(fetchdata)[对entity1对象]
}抓住{
打印(错误)
}
我已经将(表1)对象作为nsobject传输到(表2)。
在Xcode中的数据模型中,有没有任何方法可以正确执行我的函数?您已经定义了entity1和entity2之间的一对多关系,该关系的名称也是entity1类的一个属性(entity2上的反向关系也是如此)可用于访问属于entity1实例的所有entity2

因此,如果关系名为“children”,那么它可能看起来像这样

let user = userList[indexPath.row]
let entity2List = user.children //This is a Set

我通过使用
NSPredicate
将entity2数据与entity1中的属性对象连接起来解决了这个问题

let myFetch:NSFetchRequest<entity2> = entity2.fetchRequest()
    let myPredicate = NSPredicate(format: "toEntity1-relationship == %@", (myTransferdObject?.name!)!)
    myFetch.predicate = myPredicate
    do {
        usersList = try myContext.fetch(myFetch)
    }catch{
        print(error)
    }
let myFetch:NSFetchRequest=entity2.fetchRequest()
让myPredicate=NSPredicate(格式:“toEntity1关系==%@”,(myTransferdObject?.name!))
myFetch.predicate=myPredicate
做{
usersList=尝试myContext.fetch(myFetch)
}抓住{
打印(错误)
}

基本上,您不需要获取连接到关系的数据。只需从relationship属性获取数据即可。@vadian感谢您的回复,是否有任何代码行可以让我按照您的建议执行?或任何教程