2009-11-11 6 views
11

Wenn ich meine Klassen von Coredata Einheiten erzeugen I Methoden meine Frage bekommen erzeugtCoreDataGeneratedAccessors - removeObject löscht das Objekt?

@interface Site (CoreDataGeneratedAccessors) 
- (void)addSearchesObject:(Search *)value; 
- (void)removeSearchesObject:(Search *)value; 
- (void)addSearches:(NSSet *)value; 
- (void)removeSearches:(NSSet *)value; 

@end 

So ist ziemlich einfach, wenn ich removeSearchesObject nennen: myObject mache ich es zu löschen haben?

[site removeSearchesObject:[[fetchedResultsController fetchedObjects] objectAtIndex:indexPath.section]]; 
     [context deleteObject:[[fetchedResultsController fetchedObjects] objectAtIndex:indexPath.section]]; 

Hier ist der generierte Code (aus dem doc)

- (void)removeEmployeesObject:(Employee *)value 

{ 

    NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1]; 



    [self willChangeValueForKey:@"employees" 

      withSetMutation:NSKeyValueMinusSetMutation 

      usingObjects:changedObjects]; 

    [[self primitiveEmployees] removeObject:value]; 

    [self didChangeValueForKey:@"employees" 

      withSetMutation:NSKeyValueMinusSetMutation 

      usingObjects:changedObjects]; 



    [changedObjects release]; 

} 

Antwort

12

Ja, wenn Sie immer noch das Objekt entfernen müssen, es zu löschen. Das System weiß nicht, ob Sie es woanders wieder anbringen werden. Wenn Sie das Objekt jedoch löschen, wird es sich selbst entfernen, solange die Löschregel in Ihrem Modell auf "Aufhebung" gesetzt ist. Für weitere Informationen sollten Sie die documentation auf Löschregeln überprüfen.

+1

Danke! Es ist, was ich glaubte – Fsdn

Verwandte Themen