0

我对在 IOS 中使用 Core Data 尤其陌生,并且偶然发现了一个我似乎无法解决的问题。如果已经有关于这方面的帖子,我会提前道歉,我已经尽可能地努力,而不会因为沮丧而破坏我的电脑。假设我有两个不同的视图控制器,视图控制器 1 和视图控制器 2。此外,视图控制器 1 有一个“下一步”按钮,可将用户带到视图控制器 2。在视图控制器 1 中,我创建了一个托管对象 A 和做一个保存,所以现在我的持久存储更新了新的托管对象A。点击下一步后,在视图控制器2的加载方法中,我想删除我在上一个视图中创建并保存的这个对象A控制器。我该怎么做?最好的方法是什么?我能够想出的唯一解决方案是执行以下操作:

1)创建我的托管对象A,设置它的属性并保存后,我可以获取我刚刚创建的对象的“id”。

2) 抓取到这个“id”后,我可以在prepareForSegue方法中将这个NSManagedObjectId传递给View Controller 2,之后再使用ViewController2中的id来做我的删除工作。

这是做到这一点的唯一方法/正确方法吗,必须有更好的方法。

4

2 回答 2

0

获取您创建的托管对象的实例并将其传递给第二个视图控制器。当你想删除它时:

NSManagedObjectContext *moc = self.managedObject.managedObjectContext;
[moc deleteObject:self.managedObject];
[moc save:&error];
于 2013-07-19T10:24:08.607 回答
0

有几种方法可以做到这一点;在不确切知道您要达到的目标的情况下,我只能给出一些一般性评论。

首先,如果有另一种方法,将 id 传递给 View Controller 2 可能不是很理想,因为您在视图控制器级别公开了实现细节。

有没有办法从 VC2 查询核心数据并找出你需要删除的内容?

于 2013-07-19T10:33:19.303 回答