Итак, сначала вы создадите новый объект для фотографии:
NSManagedObject *photoObject = [NSEntityDescription
insertNewObjectForEntityForName:[entity name]
inManagedObjectContext:context];
NSManagedObject может быть заменен вашим объектом Photo или w / e, если у вас есть созданный подкласс.
Вы установите все атрибуты для него. Чтобы установить фотографа, вы установите его так же, как любой другой атрибут. Если у вас нет ссылки на Фотографа, вы можете запросить ее следующим образом:
NSFetchRequest *query = [[NSFetchRequest alloc] initWithEntityName:@"Photographer"];
[query setPredicate:[NSPredicate predicateWithFormat:@"id == %@", photographerId]];
NSArray *queryResults = [context executeFetchRequest:bcQuery error:&error];
Ваш результат запроса будет иметь объект фотографа. Затем вы можете установить его в своем фотообъекте как любой другой атрибут, и ссылка будет создана автоматически.
[photoObject setPhotographer:[queryResults objectAtIndex:0]];
или, если вы используете NSManagedObject:
[photoObject setValue:[queryResults objectAtIndex:0] forKey:@"photographer"];
Крутая вещь с CoreData в том, что он реляционный Вы не можете думать об этом как о типичной СУБД. Вы создаете объект и устанавливаете отношения между ними очень объектно-ориентированным способом. Не нужно заботиться о первичном / внешнем ключе, все это делается в фоновом режиме CoreData.
EDIT:
Вы можете выбрать создание подкласса NSManagedObject для более легкого доступа к атрибутам и отношениям для вашей сущности. Обязательно укажите этот подкласс в проводнике модели CoreData; на боковой панели вы измените поле «класс» на ваш новый подкласс.
Вот пример подкласса NSManagedObject:
//Interface
@interface Photo : NSManagedObject
#pragma mark - Attributes
@property (nonatomic, strong) NSNumber *id;
@property (nonatomic, strong) NSString *name;
#pragma mark - Relationships
@property (nonatomic, strong) NSSet *someToManyRelationship;
@property (nonatomic, strong) Photographer *photographer;
@end
//Implementation
@implementation Photo
@dynamic id, name;
@dynamic someToManyRelationship, photographer;
@end
Надеюсь, это поможет!