即使我正在更新托管对象,Coredata也不会更新

问题描述

如您所见,“ ZMESSAGEID”字段包含值“ CLUBID_7y919898983003160187157002002eeee1qzg6eeieguz47tqvm67rs377jjb_gft.jpg”应具有1条记录,而不是3条记录。当我尝试使用托管对象进行更新并保存上下文后,出现以下附件图像在coredata中。

enter image description here

当没有相关消息的数据(CLUBID_7y919898983003160160187157002809ee1qzg6eeieguz47tqvm67rs377jjb_gft.jpg)出现时,它是使用以下代码插入的:

`

[self scheduleBlock:^{
 archivedMessage = (XMPPMessageArchiving_Message_CoreDataObject *)
                                    [[NSManagedobject alloc] initWithEntity:[self messageEntity:moc]
                                             insertIntoManagedobjectContext:nil];


[moc insertObject:archivedMessage];
 }];

`

上传图片后,我尝试使用以下代码段将“ ZFILEUPLOADED”字段设置为0:

NSManagedobjectContext *context = [HQXMPPManager shareXMPPManager].msgStorage.mainThreadManagedobjectContext;
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];
    NSError *error = nil;
    nspredicate *pre = [nspredicate predicateWithFormat:@"messageId = %@",messageId];
    NSLog(@"QUERY For messageId: %@ %@",pre,messageId);
    request.predicate = pre;
    NSArray *aryResults = [context executeFetchRequest:request error:&error];
    for (XMPPMessageArchiving_Message_CoreDataObject *msg in aryResults)
    {
 [msg setValue:@"0" forKey:@"fileUploaded"];
NSError *err = nil;
 [context save:&err];


}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)