iPhone: основные данные обновления данных - PullRequest
0 голосов
/ 17 января 2012

Я использую основные данные в своем приложении, хочу знать, как обновить данные сущности и их связь.

Здесь «Feature» - это сущность, а «Alias» - это отношение NSSet.

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Features" inManagedObjectContext:self.managedObjectContext];


NSManagedObjectContext *aliasMOC = [NSEntityDescription insertNewObjectForEntityForName:@"Alias" inManagedObjectContext:managedObjectContext];

Использование insertNewObject создает новый набор, и меняются только его соединения, тогда как старый NSSet остается таким же, как в sqlite, что, как я считаю, увеличит «ненужные данные» без ссылок на объект Feature в базе данных.

1 Ответ

0 голосов
/ 17 января 2012

Трудно сказать, что вы пытаетесь сделать здесь, но insertNewObjectForEntityForName не возвращает NSManagedObjectContext. Обычно вы используете один и тот же ManagedObjectContext для всех ваших операций с базой данных. Возможно, вам нужно пройти учебник , прежде чем продолжить.

Я думаю, что вы пытаетесь создать отношение ко многим, и в этом случае вы можете создать дочернюю сущность, а затем указать ее родителя, что-то вроде этого (не проверено):

Parent *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:managedObjectContext];
Child *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:managedObjectContext];

child.parent = parent;

parent.children теперь должен содержать child. Это предполагает, что Child и Parent сущности существуют в вашей модели и являются объектами и имеют установленные отношения.

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