Я создал две сущности в базовой модели данных (в данном примере Courier и Occupation) и создал обратную связь между ними, что также привело к раздавлению в xcode .После этого я установил отношения как один курьер для многих профессий и создал классы.
Класс занятий был создан пустым, но класс курьера был заполнен следующим кодом:
- (void)addOccupationsObject:(NSManagedObject *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"occupations" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"occupations"] addObject:value];
[self didChangeValueForKey:@"occupations" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}
- (void)removeOccupationsObject:(NSManagedObject *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"occupations" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"occupations"] removeObject:value];
[self didChangeValueForKey:@"occupations" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[changedObjects release];
}
- (void)addOccupations:(NSSet *)value {
[self willChangeValueForKey:@"occupations" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
[[self primitiveValueForKey:@"occupations"] unionSet:value];
[self didChangeValueForKey:@"occupations" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
}
- (void)removeOccupations:(NSSet *)value {
[self willChangeValueForKey:@"occupations" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value];
[[self primitiveValueForKey:@"occupations"] minusSet:value];
[self didChangeValueForKey:@"occupations" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value];
}
У меня есть два вопроса по этому поводу:
- Что именно он делает?
- Гарантирует ли это согласованность этой модели?(Я знаю, что так и должно быть, но после сбоя я не уверен, что логика xcode при создании этого кода была правильной).
- Почему класс занятия был создан пустым?