/ / Как мога да получа обект на родителска единица и е възможно връзка по избор? - обективи c, ios, xcode, core-data

Как мога да получа обект на предприятието-майка и е възможно връзка по избор? - обективи c, ios, xcode, core-data

Моето настоящо внедряване на основни данни няма никакви взаимоотношения, така че е много лошо и трудно да се получи информацията, когато е необходимо.

Ще отида при такива взаимоотношения:

пациент - един до много -> лекар - един към много -> графици

Сега си представете, че имате NSManagedObject от графиците, как да получа предмета му, управляван от родителя,?

Мога ли да използвам самостоятелно програмата (графици без връзка с лекар)?

Отговори:

0 за отговор № 1

Можете да го постигнете, но това не е препоръчителен метод.

1: Вземи масив от лекарски предмети.

2: Повторете чрез лекарски предмети, за всеки лекар обект да му масив от графици и итерат чрез всеки график, за да намерите мач.

Правилният метод е да имате обратна връзка от графици до лекар, което е точно това, което казва Apple (без който и xcode има предупреждение)!

Ето кода на кода. Тук приемам, че всеки графичен обект има графика "scheduleId", за да идентифицира всеки един от тях.

- (NSManagedObjectContext *)getContext {

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = [appDelegate managedObjectContext];
return managedObjectContext;
}


- (NSArray *)getAllDoctors {
NSManagedObjectContext *managedObjectContext = [self getContext];
NSEntityDescription *messageEntity = [NSEntityDescription entityForName:@"Doctor"
inManagedObjectContext:managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:messageEntity];

NSError *error = nil;
NSArray *allDoctors = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
return allDoctors;
}
- (Doctor *)pickDoctorScheduledFor:(NSString *)scheduleId {
NSArray *allDoctors = [self getAllDoctors];

for (Doctor *doctor in allDoctors) {

NSArray *schedulesForThisDoctor = [doctor.schedules allObjects]; // one to many relation!
for (Schedule *schedule in schedulesForThisDoctor) {
if ([schedule. scheduleId isEqualToString: scheduleId]) {
return doctor;
}
}
}
return nil;
}