Ios 如何使用NSManagedObject对象在视图控制器之间传递自定义属性?

Ios 如何使用NSManagedObject对象在视图控制器之间传递自定义属性?,ios,objective-c,core-data,nsmanagedobject,Ios,Objective C,Core Data,Nsmanagedobject,我正在开发一个简单的notes应用程序,我在数据模型中创建了一个名为“Note”的实体,该实体只有一个名为nsstring类型的“content”属性 现在,我使用数据模型部分的editor/creatensmanagedobject子类创建了一个Note类 在我的create notes视图控制器中,我将数据保存到数据库的prepareForSegue方法中,如下所示: @implementation NOCreateNotesViewController - (NSManagedObjec

我正在开发一个简单的notes应用程序,我在数据模型中创建了一个名为“Note”的实体,该实体只有一个名为nsstring类型的“content”属性

现在,我使用数据模型部分的editor/creatensmanagedobject子类创建了一个Note类

在我的create notes视图控制器中,我将数据保存到数据库的prepareForSegue方法中,如下所示:

@implementation NOCreateNotesViewController

- (NSManagedObjectContext *) managedObjectContext
{
    NSManagedObjectContext *context = nil;

    id delegate = [[UIApplication sharedApplication] delegate];

    if ([delegate performSelector:@selector(managedObjectContext)]) {
        context = [delegate managedObjectContext];
    }

    return context;
}


- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if (sender != self.saveButton) return;
    if (self.noteText.text.length > 0) {
        self.note = [[Note alloc] init];
        self.note.content = self.noteText.text;
    }

    NSManagedObjectContext * context = [self managedObjectContext];

    // creating a new managed object

    NSManagedObject *newNote = [NSEntityDescription insertNewObjectForEntityForName:@"Note" inManagedObjectContext:context];

    [newNote setValue:self.noteText.text forKey:@"content"];

    NSError * error = nil;

    if ([context save:&error]) {
        NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
    }
}
但我不希望通过以下方式传递用户要编辑的对象(表示表视图中选定行中的注释):

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"editeNote"]) {
        NSManagedObject * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row];
        NOCreateNotesViewController * destination = [segue destinationViewController];
        destination.note = selectedNote;
    }
}
很明显,我不能传递带有指向NSManagedObject指针的Note对象…这是因为如果这是一个编辑序列,我想更新我的Note实体,而不是创建一个新的

在本课程中,他们只教动态创建对象,并注意使用编辑器/create NSManagedObject子类为对象使用自定义类,所以我有点困惑

请帮忙

NSManagedObject * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row];
想要成为:

Note * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row];

为什么要将数据保存到prepareForSegue:中的模型中?您肯定在视图中有“保存”或“完成”按钮吗?

我有一个“保存”按钮。哦,我想我明白了,所以我应该把便条传递给目的地控制器,然后在“准备”阶段保存便条时,我可以检查便条是否为零,我是否保存了它?