Coredata 错误“数据:<故障>”

2023-11-22

我尝试使用以下代码从 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 作为委托,并在 Cave.m 中添加了此代码

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

有没有办法调试这个?


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

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

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

这似乎是一个常见的误解,所以我决定写下来,here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Coredata 错误“数据:<故障>” 的相关文章

随机推荐

  • UITextField - 仅允许数字和标点输入/键盘

    我已经尝试过下面的代码 但只允许输入键盘上的数字 我的应用程序要求键盘使用句号 句号 用于金钱交易 我尝试的代码是 BOOL textField UITextField textField shouldChangeCharactersInR
  • Spark 作业因 java.io.NotSerializedException: org.apache.spark.SparkContext 失败

    当我尝试应用方法 ComputeDwt 时 我遇到了上述异常RDD Int ArrayBuffer Int Double 输入 我什至正在使用extends Serialization在 Spark 中序列化对象的选项 这是代码片段 inp
  • 将 MvxCommand 与 CommandParameter 绑定结合使用

    我正在尝试用火MvxCommand 与 CommandParameter 但面临以下问题 MyView axml 包含
  • 如何在 XCode 中使用 ARM 汇编器?

    出于教育目的 我想向现有的 iPhone 应用程序添加一个用 ARM 汇编语言编写的函数 一般来说 我不需要 ARM 汇编教程 因为我已经读了太多了 我只是不知道如何实际运行代码 我想做的是这样的 无用 h void useless 无用
  • 无法将图像渲染到 HttpContext.Response.OutputStream

    基本上我试图在 ASP NET 处理程序中渲染一个简单的图像 public void ProcessRequest HttpContext context Bitmap image new Bitmap 16 16 Graphics gra
  • Android:根据给定的 id 获取列表视图中项目的位置:

    getItemIdAtPosition 是android中的一个函数 用于获取列表视图中给定项目的位置的id 有什么方法可以做相反的事情 即获取项目的位置是给定其 id 的列表视图吗 不可以 你必须手动完成 在您正在使用的适配器中创建一个公
  • 使用 linq 按范围分组[重复]

    这个问题在这里已经有答案了 我们如何使用等于或大于的分组范围 var data new new Id 0 Price 2 new Id 1 Price 10 new Id 2 Price 30 new Id 3 Price 50 new I
  • 错误:“您在短时间内创建或删除了太多日历或日历事件。”

    第一次在这里提问 我构建了一个 Google 应用程序脚本 它从 Google 表格获取事件信息 并基于以下内容在 Google 日历上创建事件 Mogsdad 的回答在这里 由于我不存在的声誉 我无法在该线程上发布问题 exportEve
  • 使用vue js和axios上传多个文件

    我正在尝试使用 vuejs 和 axios 上传多个图像 但在服务器端我得到空对象 我在标头中添加了 multipart form data 但仍然是空对象 submitFiles Initialize the form data let
  • 将整数转换为日期

    我在将整数日期 20180525 转换为 YYYY MM DD 格式的日期时遇到问题 有没有办法做到这一点 或者我应该将其转换为代码 在本例中为Java 任何对此的帮助将不胜感激 谢谢你 如果您的日期以 YYYYMMDD 形式存储为整数 则
  • MySQL数据库中指定的两个主键

    我正在尝试创建一个测试数据库 它是预先存在的数据库的副本 我正在使用 Django 模型 理论上是与原始数据库一起使用的模型 来执行此操作 我最近从其他人那里继承了代码 并试图弄清楚代码到底发生了什么 在该模型中 其中一个表有两列标识为主键
  • C中按空格分割字符串

    我正在使用 C 语言 通过套接字我将收到一条消息 其中包含一个空格 我需要将字符串拆分为空格处的部分 我该怎么做呢 strtok r是你的朋友 不要使用普通的strtok 因为它不是线程安全的 即使在线程安全的平台上 因为状态保存在线程本地
  • 如何使用cmake在源代码中生成标头?

    在我的项目中 我有一个 架构 文件和实用程序 用于生成头文件 我正在使用 cmake 和源代码构建来构建应用程序 目前我必须手动重新生成头文件 然后构建应用程序 然后我想出了这个 CMakeLists txt 语句 但它们在构建目录而不是源
  • python套接字文件传输

    我正在尝试通过套接字写入传输文件或数据块 我感觉好像我在重新发明轮子 但我对简单解决方案的搜索失败了 我发现的所有内容要么太简单 要么太复杂 服务器将在运行 python 2 5 4 的手机上运行 预期的应用程序是在手机和主机之间同步音乐文
  • 如何防止 VS 2008 在发布过程中发布 .svn 文件夹?

    在 Visual Studio 2008 中发布 ASP NET 网站时 有没有一种方法可以强制它忽略本地工作副本中的 svn 文件夹 以便我的目标文件夹最终不会出现 svn 文件作为输出 Thanks Jason Visual Studi
  • JFreeChart 选择一个区域而不缩放

    我最近开始使用 JFreeChart 我想做一些事情 但我不确定是否可能 我的程序应该从 wav 文件中绘制频谱图 声音图 所以我设法从双数组列表中的 wav 文件中获取数据并将其显示在图表中 但现在我希望能够选择频谱图的一个区域 使用用于
  • 查询中的多个最大值

    我知道这个标题听起来不太具有描述性 但这是我能想到的最好的标题 我有这张桌子 ID BDATE VALUE 28911 14 4 2009 44820 28911 17 4 2009 32240 28911 20 4 2009 30550
  • C++:“虚拟”是否继承给所有后代

    假设以下简单情况 注意virtual class A virtual void func class B public A void func class C public B void func 下面的调用会调用B func or C f
  • 公开自定义 STL 样式迭代的首选方法是什么?

    另见有没有一种好方法可以不用在 C 中为自定义类型手写所有 12 个所需的容器函数 对于像这样的类 namespace JDanielSmith class C const size t size const std unique ptr
  • Coredata 错误“数据:<故障>”

    我尝试使用以下代码从 CoreData 中提取数据 NSFetchRequest request NSFetchRequest alloc init request entity NSEntityDescription entityForN