代码之家  ›  专栏  ›  技术社区  ›  RickiG

如何不持久化从NSManagedObjectContext检索到的NSManagedObjects

  •  2
  • RickiG  · 技术社区  · 14 年前

    我为每个新节点解析一个包含书籍的xml文件:

    Book *book = (Book*)[NSEntityDescription insertNewObjectForEntityForName:@"Book" inManagedObjectContext:managedObjectContext];
    

    我尚未执行保存:

    NSError *error;
    if (![managedObjectContext save:&error]) {
        NSLog(@"%@", [error domain]);
    }
    

    帐簿实体没有/或是任何关系的一部分。它只是一个“单一”实体。

    如果我拉“保存杠杆”每本书的对象将被持久化,我将不得不删除一切,但我想要的一个。

    谢谢你的帮助。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Marcus S. Zarra    14 年前

    是的,你违背了最佳实践。在这种情况下,如果您确实不想保存对象,请将它们保持为中间格式,并且只为您要持久化的对象创建一个核心数据对象。然而,这似乎是完全错误的。

    保存其他的书有什么坏处?只有一个会用一次吗?

    从上下文中删除未保存的对象的开销非常小是的,因此这是给定参数的最佳解决方案。我问了其他问题,看看是否有一个更干净的整体解决方案,而不是建立对象只是为了把它们扔掉。听起来你已经走上了这条路。