У меня есть 2 объекта с драйвером и Work_Shift. Драйвер имеет отношение один к другому с Work_Shift и Work_SHift имеет отношение один к одному с драйвером.Отношение данных сердечника, возвращающее значение
Я пытаюсь получить деталь драйвера при извлечении данных Work_shift, но я получаю пустые значения.
Вот мой код:
Это код для извлечения Work_Shift детали вместе с отношения внутри нее.
NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"Work_Shift"];
//[fetch setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"work_shifts.id"]];
fetch.returnsObjectsAsFaults = NO;
work_shift_results = [[self managedObjectContext] executeFetchRequest:fetch error:&error];
if([work_shift_results count]>0)
{
Work_Shift *shift = [work_shift_results objectAtIndex:0];
NSSet *driverSet = shift.work_shifts;
NSArray *driverArray = [driverSet allObjects];
NSLog(@"Shift: %@",shift);
}
Это выход я получаю
<Work_Shift: 0x15678540> (entity: Work_Shift; id: 0x15665460 <x-coredata://7059F32C-63F0-4B2C-A104-5FA339AE2473/Work_Shift/p2> ; data: {
block = nil;
"dest_mine_loc_id" = 0;
"driver_id" = 6;
"end_date" = nil;
weight = 0;
"work_shifts" = (
);
})
Я проверил и есть имеют записей в таблице драйвера. Я также пробовал раскомментировать код выше, но я получаю тот же результат.
Субъектами являются
@class Work_Shift;
@interface Driver : NSManagedObject
@property (nonatomic, retain) NSString * address;
@property (nonatomic, retain) NSString * contact_number;
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSNumber * is_active;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Work_Shift *driver;
@end
и
@class Driver;
@interface Work_Shift : NSManagedObject
@property (nonatomic, retain) NSString * block;
@property (nonatomic, retain) NSNumber * dest_mine_loc_id;
@property (nonatomic, retain) NSNumber * driver_id;
@property (nonatomic, retain) NSDate * end_date;
@property (nonatomic, retain) NSNumber * excavator_id;
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSNumber * material_type_id;
@property (nonatomic, retain) NSNumber * mine_location_id;
@property (nonatomic, retain) NSNumber * relative_level_id;
@property (nonatomic, retain) NSNumber * shift_type_id;
@property (nonatomic, retain) NSDate * start_date;
@property (nonatomic, retain) NSNumber * truck_type_id;
@property (nonatomic, retain) NSNumber * weight;
@property (nonatomic, retain) NSSet *work_shifts;
@end
@interface Work_Shift (CoreDataGeneratedAccessors)
- (void)addWork_shiftsObject:(Driver *)value;
- (void)removeWork_shiftsObject:(Driver *)value;
- (void)addWork_shifts:(NSSet *)values;
- (void)removeWork_shifts:(NSSet *)values;
@end
Я-то отсутствует?
Где код, который связывает Work_shift с драйвером? – J2theC
Я создал объекты, использующие класс NSManagedObject, я не уверен, что здесь ассоциируется ..: | –
Опубликовать данные об отношениях между сущностями. Кажется, вы используете внешний ключ, чтобы связать драйвер с рабочей сменой. Обычно лучше напрямую связывать объекты. Workshift.driver = драйвер. –