Я только начал изучать, как реализовать Core Data Model на iOS. После некоторых базовых руководств по хранению и извлечению данных с одним отношением между объектами я теперь пытаюсь реализовать отношения от одного до многих. Моя модель данных состоит из двух объектов с их соответствующими классами, которые определены следующим образом:
Restaurant:
@interface Restaurant :NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSMutableArray *user_reviews; /* One to Many Relation to Review Entity*/
@end
Review:
@interface Review : NSObject
@property (nonatomic, strong) NSString *rating;
@property (nonatomic, strong) NSString *review_text;
@property (nonatomic, strong) User *user;
@end
Я нашел похожие вопросы, которые использовали NSMutableSet для вставки, но я не могу реализовать их для NSMutable Array.
В настоящее время мой код вставки выглядит следующим образом:
NSManagedObjectContext *context = [self managedObjectContext];
Restaurant *rest = [NSEntityDescription insertNewObjectForEntityForName:@"Restaurant" inManagedObjectContext:context];
rest.name = restaurant.name;
Я извлекаю данные для ресторана и его рецензий через JSON и сохраняю их во временных классах, прежде чем сохранять их в базе данных CORE. Как вставить такие данные, которые имеют отношение "один к многим"?
ИЗМЕНИТЬ: В настоящее время я получаю данные в виде класса, который определяет свойство user_review как
NSMutableArray *user_reviews;
Я пытаюсь реализовать этот же класс для вставки в базовую модель данных. Но основная модель данных использует NSSet вместо NSMutableArray. Один грубый подход состоит в том, чтобы дублировать все классы с теми же свойствами, кроме как вместо NSMutableArray, я изменяю его на NSSet. Но это создает огромное количество избыточного кода. Не должен ли быть более эффективный способ сделать это?