"-6ren"> "-我尝试使用以下代码从 CoreData 中提取数据 NSFetchRequest *request = [[NSFetchRequest alloc] init]; request.entity = -6ren">
gpt4 book ai didi

iphone - 核心数据错误 "data: "

转载 作者:行者123 更新时间:2023-12-03 18:08:20 25 4
gpt4 key购买 nike

我尝试使用以下代码从 CoreData 中提取数据

NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"Cave" inManagedObjectContext:self.context];
request.predicate = [NSPredicate predicateWithFormat:@"(latitude > 0) AND (longitude > 0)"];

NSError *error;
NSLog(@"%@",[self.context executeFetchRequest:request error:&error]);
NSLog(@"%@",[error localizedDescription]);

CoreData 应该有 9 个匹配对象,并且它找到了这 9 个对象。所以谓词应该有效,但我在控制台中得到了这个

2011-09-05 07:41:42.267 CaveConditions[6930:11903] (
"<NSManagedObject: 0x7368060> (entity: Cave; id: 0x7367880 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p31> ; data: <fault>)",
"<NSManagedObject: 0x73547e0> (entity: Cave; id: 0x7356e20 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p40> ; data: <fault>)",
"<NSManagedObject: 0x73681e0> (entity: Cave; id: 0x7363e60 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p42> ; data: <fault>)",
"<NSManagedObject: 0x7368280> (entity: Cave; id: 0x7356be0 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p72> ; data: <fault>)",
"<NSManagedObject: 0x7368320> (entity: Cave; id: 0x733ad80 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p73> ; data: <fault>)",
"<NSManagedObject: 0x73683c0> (entity: Cave; id: 0x7333e70 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p91> ; data: <fault>)",
"<NSManagedObject: 0x7368480> (entity: Cave; id: 0x7361810 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p101> ; data: <fault>)",
"<NSManagedObject: 0x7368570> (entity: Cave; id: 0x7360110 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p105> ; data: <fault>)",
"<NSManagedObject: 0x7368610> (entity: Cave; id: 0x73303c0 <x-coredata://C825FC9D-3490-4D8A-A811-979B819A2EB6/Cave/p112> ; data: <fault>)"
)

它曾经工作得很好,直到我在 Cave.m(即实体)中进行了以下更改

我在 Cave.h 中添加了 MKAnnotation 作为委托(delegate),并在 Cave.m 中添加了此代码

- (CLLocationCoordinate2D)coordinate
{
CLLocationCoordinate2D location;
location.latitude = [self.latitude doubleValue];
location.longitude = [self.longitude doubleValue];
return location;
}

有办法调试吗?

最佳答案

这是预期的行为,核心数据不会返回完整的对象,直到您需要访问对象的持久值。在此之前,您返回的每个对象都将是“错误”。

您可以使用 [request setReturnsObjectsAsFaults:NO] 强制获取请求返回完整对象,但在大多数情况下,您所拥有的就可以了。有关更多信息,请参阅 NSFetchRequest 的文档。

如果您访问其中一个属性,核心数据将转到持久存储并获取其余的值,然后您将在日志中获得完整的描述。

这似乎是一个常见的误解,因此我决定写下它,here .

关于iphone - 核心数据错误 "data: <fault>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7304257/

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