gpt4 book ai didi

iOS Core Data NSFetchedResultController.fetchedObject 返回错误数据和 (0,0) 注解

转载 作者:行者123 更新时间:2023-11-30 13:34:43 27 4
gpt4 key购买 nike

问题是我尝试从核心数据存储中检索保存的数据,但得到“故障数据”或不确定这是什么,因为我确信我正确保存了数据(有效的位置坐标)我在 View Controller 中的代码:

 override func viewDidLoad() {
do {
try fetchedResultsController.performFetch()
} catch {}
fetchedResultsController.delegate = self
//fetch all pins from core data and load
let pins = fetchedResultsController.fetchedObjects as! [Pin]
mapView.addAnnotations(pins)
print(pins.count) /// 10
print(pins)
print(pins[0].coordinate)
print(pins[1].coordinate)
}

我确信我每次都成功保存每个对象。我打印出一些事实:pin.count 有一些数字。然而,这与其他打印相比很奇怪我得到了"data: <fault>"并将位置归零。

<小时/>
Pin: 0x7fdc0b40e160> (entity: Pin; id: 0xd000000000080000 <x-coredata://50885CE6-70AB-4AA5-AA84-19D895E4F062/Pin/p2> ; data: <fault>)])
CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)
CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)

最佳答案

当您在核心数据中收到 时,这不是错误。这是核心数据数据处理的特点。 Core Data 已实现优化方式,以在不牺牲性能的情况下保持较低的内存占用量。断层技术有助于实现这一目标。它仅在需要时将数据加载到内存中。由于以下任一原因,您收到错误:

1) 您可能在保存数据时犯了错误。

2)管理核心数据的关系属性(可选和强制)时出现逻辑错误。

3) 核心数据无法完成故障(即从持久存储加载数据)。 (这也可能是由于第(2)号逻辑错误造成的)。尽管 core-data 在无法满足故障后不会抛出异常,因为默认情况下它会这样做。不可访问的托管对象的托管对象的所有属性都为零。

访问http://code.tutsplus.com/tutorials/what-is-a-core-data-fault--cms-25157有关故障的更多信息。您可能会了解那里的错误以及可能出现该错误的原因。

关于iOS Core Data NSFetchedResultController.fetchedObject 返回错误数据和 (0,0) 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213153/

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