-2

我是编程新手,所以请多多包涵。

我想要实现的基本目标如下。提示用户在 ModalViewController 中输入文本,使用 Core Data 将该文本添加到数据库中并在 TableViewController 中显示该文本。

我已经为此做了一些广泛的工作,并且我已经设置了核心数据模型和实体。ModalViewController 是一个 UITextFieldDelegate,它调用适当的 textFieldDidEndEditing 并且我设置了 self.delegate = self。

我在 ModalViewController 中创建了一个协议,它将文本发送到它的呈现视图控制器。Presenting View Controller 调用该 Delegate 方法并获取文本。所以这就是我卡住的地方。

使用断点和 NSLog,我可以看到当呈现的表视图控制器调用该委托方法时,它具有正确的值;我添加到模态视图控制器中的就是那个值。NSLog 也显示了它。

从这个委托方法中,我调用了一个 useDocument 方法,它基本上执行 3 个 if 语句,检查文档是否已创建,检查文档的状态以及它是否已关闭以及检查文档是否具有打开状态。

我有一个 NSManagedObjectSubClass 来表示“Person”实体,所以在那个类中,使用类别,我有一个名为 personWithName:(NSString *)name inManagedObjectContext的方法,从 useDocument 方法中,我调用一个 transactionInDatabase 方法,该方法又调用它。

人员类别进入并执行 insertNewObjectForEntityForName。它继续并将 person.name 的值设置为 = name (传入的)。

调试表明这是可行的,并且将 person.name 的值(当然是 Person 实体中的一个属性)设置为名称,直到在此方法结束时返回“person”,然后值突然为零。

在模态视图控制器中,“名称”属性是非原子的,复制但我尝试过强弱相同的效果。

基本上,我希望用户将文本添加到模态视图控制器并将该文本添加到数据库中,因此在呈现视图控制器中,当我调用该实体并执行 NSFetchRequest 时,结果会出现在 TableViewController 中。

我知道这是一个相当复杂的设置,但同时,我可以想象这也很常见,因此任何对此的了解都会受到极大的赞赏。

4

1 回答 1

-1

首先,您需要了解 CoreData、Viewcontrollers 的基础知识。

这是最好的尝试这就是你想要的。

于 2013-10-04T05:58:50.150 回答