将更多对象提取到实体中后核心数据关系丢失

2023-12-07

我有一个如下所示的核心数据模型。

enter image description here

在表格视图中,我加载了所有约会。上一个UILabel在我里面custom cell我将约会地点名称设置如下。

NSString *info = appointment.location.label_vrij;

起初一切正常,但是当我将更多约会加载到我的database。 所有信息字符串都消失了NULL。经过一些调试我也注意到appointment.location回报NULL.

这就是我的 NSFetchRequest 的样子

RKManagedObjectStore *store = [[SanMaxDataModel sharedDataModel] objectStore];
    NSManagedObjectContext *context = store.mainQueueManagedObjectContext;

    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Appointment"];
    NSString *relationshipKeyPath = @"location"; // Set this to the name of the relationship on "A" that points to the "B" objects;
    NSArray *keyPaths = [NSArray arrayWithObject:relationshipKeyPath];
    [fetchRequest setRelationshipKeyPathsForPrefetching:keyPaths];
    NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateStart" ascending:YES];
    fetchRequest.sortDescriptors = @[descriptor];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:
                              @"tijd_dag = %@",strDate];
    [fetchRequest setPredicate:predicate];
    NSArray *matches = [context executeFetchRequest:fetchRequest error:nil];
    appointments = [matches mutableCopy];

所以我觉得我的关系已经搞砸了?

EDIT

我正在使用 Restkit 将我的约会映射到我的核心数据库中。根据下面的评论,我决定关闭约会实体内位置属性的选项标志。因为约会总是要有地点的。

现在当我第一天加载时。一切正常。但是当我第二天尝试加载时,我收到错误:The operation couldn\U2019t be completed. (Cocoa error 1570.)现在,当我查看详细的错误时

DetailedError: {
    NSLocalizedDescription = "The operation couldn\U2019t be completed. (Cocoa error 1570.)";
    NSValidationErrorKey = location;
    NSValidationErrorObject = "<Appointment: 0x864e2f0> (entity: Appointment; id: 0x9272c70 <x-coredata://9692683D-3077-4362-9253-652AC5B36444/Appointment/p9> ; data: {\n    autouur = 1;\n    breekuur = 0;\n    data1 = \"\";\n    data2 = \"\";\n    data3 = \"\";\n    data4 = \"\";\n    data5 = \"\";\n    data6 = \"\";\n    data7 = \"\";\n    data8 = \"\";\n    data9 = \"\";\n    dateStart = \"2013-10-23 09:00:00 +0000\";\n    dateStop = \"2013-10-23 09:30:00 +0000\";\n    duration = 30;\n    email = \"\";\n    entryID = 774294984959;\n    info = \"\";\n    \"is_blocked\" = 0;\n    \"is_except\" = 0;\n    \"is_free\" = 1;\n    \"is_moved\" = 0;\n    \"is_vert\" = 0;\n    locatieID = 773150;\n    location = nil;\n    multiID = nil;\n    serverEntryID = 774294984959;\n    serverLocatieID = 773150;\n    sms = \"\";\n    \"tijd_dag\" = 20131023;\n    \"tijd_uur\" = 900;\n})";
}

这就是我在核心数据中加载 JSON 的方式

-(void)getAppointmentsForDate:(NSString *)date forUserID:(NSString *)userID{
    API *api = [API new];
    RKManagedObjectStore *store = [[SanMaxDataModel sharedDataModel] objectStore];
    NSLog(@"store is %@",store);
    NSManagedObjectContext *context = store.mainQueueManagedObjectContext;
    RKObjectManager *objectManager = [api mapAppointments];

    NSString *urlString = [NSString stringWithFormat:@"/doctor/1.0/json/nl/appointments/get-by-date/apikey/%@?uid=%@&date=%@",APIKey,userID,date];
   // NSString *urlString = [NSString stringWithFormat:@"/doctor/1.0/json/nl/appointments/get-by-date/apikey/%@?uid=77382&date=%@",APIKey,date];


    NSURLRequest *request = [objectManager requestWithObject:nil method:RKRequestMethodGET path:urlString parameters:nil];
    RKManagedObjectRequestOperation *operation = [objectManager managedObjectRequestOperationWithRequest:request managedObjectContext:context success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        NSLog(@"TILL HERE IN METHOD");
        NSError *error = nil;
        [[NSNotificationCenter defaultCenter] postNotificationName:@"appointmentsLoaded" object:self];
      [[SanMaxDataModel sharedDataModel] saveToPersistentStoreAsync:&error];
     } failure:^(RKObjectRequestOperation *operation, NSError *error) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                        message:[error localizedDescription]
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
        NSLog(@"Hit error: %@", error);

    }];
    [objectManager enqueueObjectRequestOperation:operation];
}

看来您的问题是,默认情况下,RestKit 在执行新映射时会替换关系的内容。您需要告诉它您想要新的与旧的关系数据。通过设置来做到这一点:

relationshipMapping.assignmentPolicy = RKAssignmentPolicyUnion;

如果您使用旧版本的 RestKit,则需要使用RKUnionAssignmentPolicy.

Where relationshipMapping是你的RKRelationshipMapping实例。

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

将更多对象提取到实体中后核心数据关系丢失 的相关文章

  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 更改 NSMutableAttributedString 中链接的颜色

    我有以下代码 但我的链接始终是蓝色的 我如何改变它们的颜色 string addAttribute NSLinkAttributeName value tag range NSMakeRange position length string
  • Swift - 我可能已经删除了 Apple Swift Packages 集合

    我对 swift 和 XCode 很陌生 昨天我正在开发一个项目 想尝试一下某人制作的自定义日期选择器 所以我转到 添加包 并粘贴 GitHub 链接并添加它 我已经在我的项目中添加了一个名为 KeychainAccess 的不同包 方式
  • iOS 9.3 中的 KVO 被破坏

    这可能是 iOS 9 3 发行版 中的一个可怕的错误 添加单个观察者时 NSUserDefaults standardUserDefaults 我注意到响应方法 observeValueForKeyPath ofObject change
  • SwiftUI DisclosureGroup 单独展开每个部分

    我正在使用 Foreach 和 DisclosureGroup 来显示数据 每个部分都可以展开 折叠 然而 它们都在同时扩展 折叠 如何单独展开 折叠每个部分 struct TasksTabView View State private v
  • 寻找可靠的方法来选择iPhone 13微距相机设备

    我正在使用 objc 开发一个应用程序 我必须选择 iPhone 13 Pro 和 13 Pro Max 中配备的新微距摄像头 目前 我在所有其他设备上选择我的相机 并剪掉此代码 AVCaptureDeviceDiscoverySessio
  • 在 iOS 上构建 WebRtc

    我按照以下说明成功地在 MAC 上构建了 WebRTC http www webrtc org reference getting started http www webrtc org reference getting started
  • ios如何搜索目录

    我想知道如何检查我的应用程序中是否存在目录 例如 如果我想搜索我的应用程序文档中是否存在文件夹 以及如何在其中创建新文件夹 此致 检查文件是否存在 BOOL fileExistsAtAbsolutePath NSString filenam
  • UICollectionViewCell 拖动预览的自定义视图

    我正在尝试实现一项功能 用户可以将一个集合视图单元格拖放到另一个集合视图单元格上 但是 我想完全更改运动中物体的预览 以匹配我的应用程序的视觉隐喻 该项目没有移动 该项目包含的东西正在移动 例如 假设我的collectionview单元格显
  • iPhone 核心数据:无法找到 NSManagedObjectModel

    我使用 Apple 的 CoreDataBooks 示例项目作为核心数据的学习辅助工具 我修改了应用程序 以便在加载应用程序时我首先显示菜单页面 而不是图书表视图 RootViewController 我做了以下事情 我在界面生成器中创建了
  • iOS8 自签名证书已安装但仍不受信任

    由于我无法控制的原因 我需要使用自签名证书针对平台进行 iOS 开发 它是一个在 SAN 中具有特定 IP 地址的根证书 当证书安装在 OSX 系统帐户下时 所有浏览器现在将正常信任对给定 IP 地址的任何访问 通过电子邮件将同一证书发送到
  • 如何在 iOS 中创建多行表格单元格?

    如何让第二个单元格扩展以适合文本而不是缩放文本 iOS 中有内置的方法可以做到这一点 还是我必须想出一些自制的解决方案 如果您查看 iOS 联系人应用程序 会发现有一个类似地址的框 但我找不到如何实现这一点 对于任何希望将来实现这一目标的人
  • 以编程方式更改自动布局约束后视图未更新

    事先我必须说 我实际上得到了我想要的可见效果 但不是以令人满意的方式 因为现在需要 打破 约束而不是正确更新 我有一个 ViewController 其中包含一个 UITableView 那个的高度tableView可以从 0 不可见 到它
  • 使用 HTTP NSURL 创建 AVAsset

    我正在尝试合并两个NSURLs包含视频参考 其中一个 URL 指向 AWS 上的视频 另一个 URL 指向本地存储的视频 我的导出代码有效 因为我已经尝试使用两个本地视频 但每当我尝试合并 HTTP url 和本地 url 时 我都会收到此
  • ios GPUImage,小尺寸图像处理效果不好?

    我正在尝试为 OCR 准备图像 我使用 GPUImage 来完成 代码工作正常 直到我裁剪图像 裁剪后我得到了糟糕的结果 作物面积 https www dropbox com s e3mlp25sl6m55yk IMG 0709 PNG h
  • iOS UITableView:使用 CAGradientLayer 将背景颜色指定为渐变

    我刚刚开始使用 Xcode 4 3 中的主从视图模板 我试图更改主视图的背景颜色并将其设置为颜色渐变 这是我尝试过的 Colors m import Colors h implementation Colors UIColor naviga
  • 从应用程序打开/关闭 iPhone 的 Wifi

    我需要打开或关闭 iPhone 中的 wifi 有什么方法可以做到吗 还是被禁止了 私有框架 所有使用公共 SDK 编写的应用程序都经过沙箱处理 他们只能访问苹果认为可以在该沙箱中使用的属性和数据 恐怕 Wi fi 不在列表中 请看一下这个
  • 当键盘出现时调整 UITextView 的大小

    我想在键盘出现时调整文本视图的大小 我的代码如下 我打开了自动布局 因此使用来自超级视图的 textView gt bottom 空间的约束 并通过 IBOutlet distanceFromBottom 引用它 void keyboard
  • 在启动屏幕中执行代码已更新

    在原始启动屏幕中执行代码 https stackoverflow com questions 27642016 execute code in launch screen 现在默认的LaunchScreenXcode 项目中的文件已更改为

随机推荐

  • C++ 在 Windows 中发送简单信号

    Windows 上是否有相当于kill 的函数 int kill pid t pid int sig 如果没有 是否可以根据进程的 PID 来测试进程是否正在运行 Thanks Windows 没有 Unix 意义上的信号 您可以使用Ope
  • 构建财务报表数据库

    我正在寻找构建数据库的最佳方法 我有 1000 家公司从 1997 年到 2012 年的季度财务报表 每家公司都有三份不同的报表 损益表 资产负债表和现金流量表 我希望能够对数据执行计算 例如将每个季度相加以获得每个报表上每个行项目的年度总
  • 十六进制字符串转中文字符串

    我有以下代码可以从十六进制转换为 ASCII Hexadecimal to ASCII Convertion private static string hex2ascii string hexString MessageBox Show
  • 如何将模板参数限制为指针或随机访问迭代器?

    有没有办法将模板函数的参数类型限制为仅指针或随机访问迭代器 假设我正在开发一个排序功能 该功能仅适用于可随机访问的容器 我正在寻找一种在用户传递非随机访问迭代器时抛出编译时错误的方法 include
  • 简单的 HTML DOM 空间到类中

    我正在使用简单的 HTML DOM 从网站获取元素 但是当类属性有空格时 我什么也得不到 源 HTML 来自betaexplorer com table class stats table stats main table 2 tbody
  • 如何限制 Spring MVC 控制器的 @RequestMapping 路径中​​的路由扩展?

    我有一个相当简单的任务想要完成 但似乎无法找到有关 Spring MVC 路由的信息 我有一个非常简单的控制器 它将路径路由到视图 Controller RequestMapping value help public class Help
  • SQL Server 2005 db_denydatawriter 示例查询

    我正在尝试将 mydomain myuser 添加到 db denydatawriter 角色 但我可以找到一个简单的查询示例 有人有一个简单的示例吗 如果您还没有设置登录名 用户 只需 3 个步骤 CREATE LOGIN mydomai
  • Bootstrap 元素 100% 宽度

    我想创建交替的 100 彩色块 附件中说明了 理想 情况以及当前情况 所需的设置 现在 我的第一个想法是创建一个 div 类 给它一个背景颜色 并给它 100 的宽度 block width 100 background fff 然而 你可
  • 如何在android中的范围搜索栏中设置两个拇指之间的范围?

    我在我的应用程序中使用范围搜索栏 它工作正常 但我的要求是设置两个拇指之间的范围 默认情况下 两个拇指相互重叠 在我的情况下 拇指不相互重叠 如何设置范围搜索栏中两个拇指之间的范围 下面是我的范围搜索栏类 在我的例子中 两个拇指之间的差异是
  • 从产品获取流会返回一个空集合,其中包含一些动态产品组规则

    我创建了一个装饰 可以自动加载streams对于产品 这使我能够访问店面中的动态产品组 但在使用某些规则时遇到了一些问题 选择特定产品或使用时一切正常productNumber equals number规则 但是当我尝试根据属性值选择产品
  • 灰度背景 CSS 图像

    我在网上搜索了很多 但找不到跨浏览器解决方案来将 css 背景图像淡入灰度并返回 唯一有效的解决方案是应用 CSS3 灰度滤镜 webkit filter grayscale 100 但这仅适用于 Chrome v 15 和 Safari
  • Flutter:语法错误:JSON 中位置 0 处出现意外标记 <

    我需要从 API 获取数据 但我的 try catch 失败并出现 SyntaxError Unexpected token Code String problems try final response await http get ht
  • 在Python中将字符串转换为元组

    好的 我有这个字符串 tc 107 189 我需要它是一个元组 这样我就可以一次将每个数字称为一 print tc 0 needs to output 107 先感谢您 所有你需要的是ast literal eval gt gt gt fr
  • 如何在多个.cpp文件中使用全局变量?

    我有一个简单的程序 它尝试在单独的文件中打印我的全局变量 我正在使用Visual Studio 2013 专业版 IDE print h ifndef PRINT H define PRINT H void Print endif 打印 c
  • ELMAH 异常生成通用“服务不可用”消息

    我正在尝试创建一个可用性页面 该页面检查站点使用的所有服务 将每个检查包装在 try catch 中 然后向用户显示任何失败 其中一项服务是 ELMAH 因此我调用该服务是为了仔细检查我们是否可以成功记录错误 控制器 var a new A
  • 为什么 jquery 自动完成功能在 https(安全页面)上不起作用?

    我试图让 jquery 自动完成功能在 https 安全页面 页面上工作 但它没有显示任何下拉菜单 我搜索了这个问题 发现它的安全问题 谁能告诉我如何在 https 页面上打开此自动完成下拉列表 这是我的 jquery 自动完成代码 fun
  • 使用生成器作为子流程输入;出现“对已关闭文件进行 I/O 操作”异常

    我有一个大文件需要在输入另一个命令之前进行处理 我可以将处理后的数据保存为临时文件 但想避免这样做 我编写了一个生成器 它一次处理每一行 然后按照脚本将其作为输入提供给外部命令 但是我在第二轮循环中遇到了 关闭文件上的 I O 操作 异常
  • Oracle 高级队列 - 出队不起作用

    我似乎找不到解决问题的方法 我已经被困在这个问题上几个小时了 我正在使用 Oracle AQ Dbms Aqadm Create Queue Table Queue Table gt ITEM EVENT QT Queue Payload
  • 即使安装了 Pandas 模块也找不到

    我为此使用 anaconda 我已经使用两者下载了 pandas pip install pandas and conda install pandas 安装成功 再次安装显示已经安装 然而 当单独写这一行时 import pandas a
  • 将更多对象提取到实体中后核心数据关系丢失

    我有一个如下所示的核心数据模型 在表格视图中 我加载了所有约会 上一个UILabel在我里面custom cell我将约会地点名称设置如下 NSString info appointment location label vrij 起初一切