CoreDataGeneratedAccessors - removeObject удаляет объект? - PullRequest
11 голосов
/ 11 ноября 2009

Когда я генерирую свои классы из сущностей CoreData, я получаю сгенерированные методы

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

@end

Так что мой вопрос довольно прост, когда я вызываю removeSearchesObject: myObject мне тоже нужно удалить?

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

Вот сгенерированный код (из 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];

}

1 Ответ

12 голосов
/ 11 ноября 2009

Да, если вы удалите объект, вам все равно нужно удалить его. Система не знает, собираетесь ли вы подключить ее где-то еще. С другой стороны, если вы удалите объект, он удалит себя сам, если для правила удаления в вашей модели установлено значение «Обнулить». Для получения дополнительной информации вам следует ознакомиться с документацией о правилах удаления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...