Как позже присвоить значение необязательному атрибуту NSManagedObject в NSManagedObjectModel, имеющей три NSManagedObjects, который уже создан? - PullRequest
0 голосов
/ 30 апреля 2010

Я использую Coredata Framework. В моем NSManagedObjectModel я использую три сущности: класс, ученик и балл, где класс и ученик имеют отношение «один ко многим» и «обратный», а «ученик» и «счет» также имеют обратное отношение, но один-один.

Оценка сущности имеет все необязательные атрибуты и имеет значение по умолчанию '0' decimalVaue, которое не назначается при добавлении нового ученика. Но позже я хочу назначить им оценку индивидуально, а также определенному атрибуту, а не всем атрибутам оценки за раз. Я могу создавать и добавлять учеников в определенный класс, но понятия не имею, как позвонить конкретному ученику и назначить ему оценку. Например Я хочу присвоить атрибуту Score '"dribbling" [есть много атрибутов, таких как "tackling") десятичное значение для Student"David" из Class"Soccer "Как я могу это сделать?

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 06 мая 2010

Я нашел решение. При первом создании или добавлении нового студента в объект класса (NSManaged) в контексте класса (NSManaged) также добавьте новый экземпляр объекта Score (NSManaged), в котором только что создан или добавлен студент, и одновременно назначьте ему значение по умолчанию Значение «0» для всех других атрибутов. Позже вы можете переназначить значения в зависимости от ситуации.

[student setValue:@"Beckham" forKey:@"lastName"];
[student setValue:@"Soccer" forKey:@"belongsToClass"]; 

после добавления этого нового ученика сохраните ссылку на него и используйте его в новом объекте Score как-

Score *score = [NSEntityDescription insertNewObjectForEntityForName:@"Score" inManagedObjectContext:managedObjectContext];
score setValue:[NSNumber numberWithInteger:0] forKey:@"dribbling"];//attribute
[associatedScore setValue:[self newlyAddedStudent] forKey:@"belogsToStudent"];//relation

Вот так.

...