Вы, кажется, проектировании схемы, как если бы это была база данных. Пожалуйста, не делайте этого. Нет необходимости и противоречить тому, как работает CoreData. Вы должны избавиться от своих полей идентификатора. Просто объявите соответствующие отношения в модели, а затем все, что вам нужно сделать, чтобы получить отдел для сотрудника будет:
myEmployee.departmentName
Получение всех сотрудников будет просто сделать так:
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
NSError *error = nil;
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil)
{
// Deal with error...
}
Это было взято из документов. Если вы используете ARC, измените код соответствующим образом.
Как насчет того, нужно ли мне копировать мои кордаты в «облако», а не повторять его? Как вы сериализуете базу данных coredata с отношениями в такте? Я могу легко понять, как сериализовать текущую базу данных coredata в xml/JSON с помощью внешних ключей. – Matt
Также это просто конверт из приложения .net. Таким образом, внедрение новой реляционной установки - большая работа. – Matt
В этом случае вам может потребоваться рассмотреть, подходит ли вам CoreData. Использование SQlite с оболочкой, такой как FMDB, может быть более уместным. – sosborn