я это One-to-Many
relationship
в Core Data
:Fetch объекты Основные данные через один-ко-многим
Каждый SBQChrono
может иметь много SBQLaps
.
В моей модели у меня есть класс SBQLap
:
@interface CILap : NSObject
@property (strong, nonatomic) NSDate * lapDate;
@end
И класс SBQChrono
:
@interface CIChrono : NSObject
@property (strong, nonatomic) NSDate * startDate;
@property (strong, nonatomic) NSDate * stopDate;
@property (strong, nonatomic) NSOrderedSet *laps;
@end
я все SBQChrono
entities
делает:
NSFetchRequest *request=[[NSFetchRequest alloc] initWithEntityName:kChronoEntityName];
NSError *error;
NSArray *objects = [appContext.managedObjectContext executeFetchRequest:request error:&error];
Как я могу получить указанные SBQLap
сущностей за каждый SBQChrono
Я нахожу? Я прочитал много сообщений и не могу найти решение.
UPDATE:
После попытки бросить NSManagedObject
, я понял, что колена возвращаются в качестве нулевой стоимости.
Выполнение:
для (NSManagedObject * oneObject в объектах) {
CIChrono *chrono=(CIChrono *)oneObject;
NSLog(@"startDate %@", chrono.startDate);
NSLog(@"stopDate %@", chrono.stopDate);
NSLog(@"laps %@",chrono.laps);
} Я получаю сообщение:
2014-01-28 14:39:48.379 Chrono[2341:70b] startDate 2014-01-28 12:27:53 +0000
2014-01-28 14:39:48.380 Chrono[2341:70b] stopDate 2014-01-28 12:27:54 +0000
2014-01-28 14:39:48.380 Chrono[2341:70b] -[NSManagedObject laps]: unrecognized selector sent to instance 0x8b959b0
2014-01-28 14:39:48.383 Chrono[2341:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject laps]: unrecognized selector sent to instance 0x8b959b0'
Благодарности
Один массив, содержащий все кружки для всех хрононов в массиве 'objects'? – Wain
В основном доступ к NSOrderedSet. CoreData будет прозрачно извлекать их при доступе к ним. Если вы создаете подклассы NSManagedObject из редактора моделей, Xcode будет генерировать для вас аксессоры. – user3071962
Я хочу найти только кружки указанного Chrono;) Спасибо – santibernaldo