Сценарий следующий:основных данных с отношением один ко многим - Сохранение/загрузка
Каждый раз, когда приложение запускается он загружает список Beacon
с (объект) и список Action
с (объект). Каждый Beacon
имеет ноль или более назначенных действий. На данный момент (и простота) каждый маяк назначил одно действие.
Так что я загружаю данные и разбираю JSON на 2 NSMutableArray
. Объект Beacon
имеет некоторые переменные и идентификатор переменной. Объект Action
имеет также некоторые строковые переменные и отношение beacon
, которое является (внешним ключом) таким же, как переменная id
в Beacon
.
Я разработал синглтон для сохранения и загрузки данных. На данный момент мой код выглядит как эти:
+(void)saveBeacons:(NSMutableArray*)array andAction(NSMutableArray*)actionsArray andManagedObject:(NSManagedObjectContext*)managedObject{
NSDictionary *jsonDict3 = [[NSDictionary alloc] init];
NSManagedObjectContext *context = managedObject;
for (int i=0; i<[array count]; i++) {
jsonDict3 = (NSDictionary*)[array objectAtIndex:i];
NSManagedObject *newBeacon = [NSEntityDescription insertNewObjectForEntityForName:@"Beacon" inManagedObjectContext:context];
[newBeacon setValue:[[jsonDict3 objectForKey:@"uuid"] uppercaseString] forKey:@"uuid"];
[newBeacon setValue:[jsonDict3 objectForKey:@"minor"] forKey:@"minor"];
[newBeacon setValue:[jsonDict3 objectForKey:@"major"] forKey:@"major"];
}
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
Примечание: array
содержит Beacon
объект и actionArray
Action
.
Я знаю, что мне нужно использовать вложенный цикл, но как я должен добавлять отношения для каждого действия с маяком? Также мне нужно переписывать данные каждый раз, когда пользователь загружает новые данные. Должен ли я прекратить использовать Core Data?
PS. Вот так выглядит мой основной дизайн данных: