从另一个视图中删除现有数据

Posted

技术标签:

【中文标题】从另一个视图中删除现有数据【英文标题】:Delete existing data from another view 【发布时间】:2013-05-16 15:32:29 【问题描述】:

我试图构建像原生 Apple Notes 这样的应用程序。我有一个问题\问题。 在苹果笔记中,当您再次打开已经存在的笔记并从中删除所有文本时 - 删除笔记和删除核心数据中的数据。我该怎么做?应用程序的第一个视图 - 笔记列表,第二个视图 - 笔记。我不明白如何删除该对象,我需要什么。例如:当我从列表到笔记的转换看起来像这样时:

-(void) prepareForSegue:(UIStoryBoardSegue *)segue sender:(id)sender
      NoteDetailVC *destViewController = segue.destinationViewController;
      if([[segue identifier] isEqualToString:@"ShowNote"])
            NSManagedObject *selectedNote = [self.notes objectAtIndex[[self.tableView indexPathForSelectedRow] row]];
            destViewController.selectedNoteInfo = selectedNote;
      
 

在 NoteDetailVC 中,我与类似的数据进行交互:

if (selectedNoteInfo)
 // bla bla bla code

在创建时我使用setValue: 命令和其他。我了解在设置新值之前如何在不保存数据的情况下关闭控制器。但是不明白如何从核心数据中删除已经存在的对象。如何检查我需要什么索引等?请帮忙! :-)

再次为我的英语感到抱歉:)

【问题讨论】:

您可能想看看如何使用key-value in coredata 以及如何使用delete 【参考方案1】:

鉴于我正确理解您的问题,这是我将采取的方法。

当用户选择创建一个新笔记时,创建你的 NSManagedObject 来代表它。

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

当他们返回列表或按完成时...在 prepareForSegue:sender: 检查注释的内容。

if (note.contents.length == 0) 
    [self.context deleteObject:note];


[self.context save:&error]

【讨论】:

以上是关于从另一个视图中删除现有数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jenkins 中将现有工作从一个视图移动到另一个视图?

从另一个视图中的 MKMapView 中删除注释

为啥我不能从另一个控制器中删除视图?

无法从另一个视图控制器获取表视图数据

Xamarin MVVM 从另一个页面删除 Listview 项目

MySQL:从另一个表中的值“修补”表上的现有数据