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

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(使用前将#替换为@)

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

  • 是否为 Core Data 的获取结果控制器实现委托

    实现四种委托方法有什么好处 void controllerWillChangeContent NSFetchedResultsController 控制器 void 控制器 NSFetchedResultsController 控制器 di
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • iOS 上的 UIBezierPath 操作

    我从一条直线开始 我希望用户能够触摸并拖动该线 使其弯曲 实际上 他们有能力将线条操纵成波浪形状 我不确定从技术上实现这一目标的最简单方法 我首先创建了三次曲线的 UIBezierPaths 数组 目的是操纵控制点 但似乎一旦绘制了 UIB
  • 适用于 IOS 和 Android 的支付网关 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个应用程序 用户必须在澳大利亚餐馆通过应用程序 android ios 付款 有两种付款方式 通过 PayPal 或 Visa
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 为什么这个谓词格式会变成 '= nil'

    有人建议这个线程 https stackoverflow com questions 40686005 nspredicate crash after swift 3 migration与我的问题完全相同 但是 我的应用程序没有崩溃 并且我
  • 进入前台后刷新数据

    更改默认设置后 我想在AppDelegate中进入前台时刷新myViewController的数据 我所做的是 AppDelegate m void applicationDidFinishLaunching UIApplication a
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 检测 AvPlayer 何时切换比特率

    在我的应用程序中 我使用 AVPlayer 通过 HLS 协议读取一些流 m3u8 文件 我需要知道在流会话期间 客户端切换比特率多少次 我们假设客户端的带宽正在增加 因此客户端将切换到更高比特率的段 AVPlayer能检测到这个开关吗 T
  • 当强制退出/向上滑动以终止 iOS 应用程序而不点击横幅/警报时,如何获取推送通知有效负载?

    我正在构建一个应用程序来处理从 Parse 推送的通知 并尝试创建通知历史记录功能 我已经成功启用了后台模式 因此当应用程序在后台运行时 应用程序可以通过以下方式很好地获取有效负载application didReceiveRemoteNo
  • 我怎样才能勾勒出文本字体?

    我想在边框 轮廓 中显示另一种颜色的文本 我正在尝试使用在 MapOverlayView 中显示文本 text drawAtPoint CGPointMake 0 30 withFont UIFont fontWithName Helvet
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们

随机推荐

  • 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 起初一切