Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 多对多上的Core Data removeObject导致对象设置为空_Ios_Core Data_Many To Many - Fatal编程技术网

Ios 多对多上的Core Data removeObject导致对象设置为空

Ios 多对多上的Core Data removeObject导致对象设置为空,ios,core-data,many-to-many,Ios,Core Data,Many To Many,我有两个对象接触和解除接触,一个是对多,一个是反向关系集。我在DealContact上生成了名为removeContactsObject的核心数据访问器。DealContact与许多名为contacts的联系人有关系。当我这样做时: [dealContact removeContactsObject:oneContact]; 它会导致dealContact对象在保存或执行任何其他操作之前变为null。我还尝试了以下几点: NSSet *contactSet = [dealContact mut

我有两个对象接触和解除接触,一个是对多,一个是反向关系集。我在DealContact上生成了名为removeContactsObject的核心数据访问器。DealContact与许多名为contacts的联系人有关系。当我这样做时:

[dealContact removeContactsObject:oneContact];
它会导致dealContact对象在保存或执行任何其他操作之前变为null。我还尝试了以下几点:

NSSet *contactSet = [dealContact mutableSetValueForKey:@"contacts"];
[contactSet removeObject:oneContact];
[dealContact setContacts:contactSet];

没有成功。dealContact对象在任一操作后都变为null。如何从关系中删除联系人对象(而不是删除)。

假设您不使用ARC。在删除联系人对象之前,您可能只需要向其发送一条
retain
消息。当对象从集合中移除时,它将被释放,默认情况下managedObjectContext不会保留其注册的对象,因此集合可能是唯一保留它的对象。e、 g

[dealContact retain];
[dealContact removeContactsObject:oneContact];
//.... add to new relationship
[dealContact release];

你是在使用mac osx还是ios?(添加任何一个标签都更有可能让你的问题变得清晰可见)。在iOS上工作。谢谢您对标签的建议,但我如何添加它们?我在任何地方都看不到编辑问题。为您添加了它:)将来,在问题标签的正下方会有一个“编辑”按钮。您可以单击该按钮编辑标记。希望有人能帮助你!您是使用ARC还是手动保持和释放?如果是后一种情况,您可能需要在删除它之前发送一条
retain
消息,否则在删除之后没有任何内容保留。我尝试了这个方法,但没有成功。我不想释放dealContact对象。我正在从dealContact中删除一个联系人,因此只更改保存联系人的集合。这不是保留问题,而是我没有将dealContact对象传递到另一个正在运行removeContactsObject调用的屏幕。谢谢你的指点。