gpt4 book ai didi

ios - 如何使用 NSManagedObject 对象在 View Controller 之间传递自定义属性?

转载 作者:行者123 更新时间:2023-11-29 03:02:44 25 4
gpt4 key购买 nike

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

现在我使用数据模型部分中的编辑器/创建 NSManagedObject 子类来关心一个 Note 类。

在我的创建注释 View Controller 中,我将数据保存到如下所示的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]);
}
}

但我不想这样传递用户想要编辑的对象(即 TableView 中选定行中的注释):

- (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 的指针的 N​​ote 对象...这是因为如果这是一个编辑转场而不是创建一个新的转场,我想更新我的 Note 实体。

tutorial I learned core data basics from他们教的只是动态创建对象,并注意使用编辑器/创建 NSManagedObject 子类的对象的自定义类,所以我有点困惑..

请帮忙

最佳答案

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

想成为:

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

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

关于ios - 如何使用 NSManagedObject 对象在 View Controller 之间传递自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com