gpt4 book ai didi

swift - 如何从此核心数据函数中检索特定值?

转载 作者:行者123 更新时间:2023-11-28 15:44:23 25 4
gpt4 key购买 nike

我正在尝试将以下数据链接在一起:

    for member in self.markersArray {
var coordinate = NSEntityDescription.insertNewObject(forEntityName: "Coordinate", into: managedObjectContext)
coordinate.setValue(member.latitude, forKey: "latitude")
coordinate.setValue(member.longitude, forKey: "longitude")
coordinate.setValue(mapName, forKey: "name")
}

以便稍后我可以通过 mapName 引用这个经纬度值数组。我该怎么做?

最佳答案

您可以通过为获取请求指定谓词来确保获取请求返回仅包含具有给定 mapName 的 Coordinate 对象的数组,例如。

fetchRequest.predicate = NSPredicate(format:"name == %@", yourMapName)

但是多次存储相同的 map 名称,每个坐标一次,效率低下(特别是如果您随后想要更改 map 名称 - 您必须更新所有相关的坐标对象)。另一种方法是添加另一个实体(例如 Map),它具有一个属性(mapName)和一对多关系(coordinates ) 到坐标实体。您的 Coordinate 实体将不需要 name 属性,而是与 Map 实体( coordinatesmap 关系互为逆)。要将 Coordinate 对象“链接在一起”,您可以创建一个 Map 对象,设置其 mapName 属性,然后将其分配给 map 关系每个坐标对象:

let newMap = NSEntityDescription.insertNewObject(forEntityName: "Map", into: managedObjectContext)
newMap.setValue(mapName, forKey:"mapName")
for member in self.markersArray {
var coordinate = NSEntityDescription.insertNewObject(forEntityName: "Coordinate", into: managedObjectContext)
coordinate.setValue(member.latitude, forKey: "latitude")
coordinate.setValue(member.longitude, forKey: "longitude")
coordinate.setValue(newMap, forKey: "map")
}

关于swift - 如何从此核心数据函数中检索特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329683/

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