У меня есть NSArray
из NSDictionaries
, каждое из которых имеет 4 значения ключа.
Я создаю объекты для каждого NSDictionary и назначаю ключи соответственно.
Как я могуитерация по массиву словарей и установка каждого ключа в качестве атрибута для объекта?
Я создал массив, показанный на рисунке ниже, с помощью этого кода:
if (muscleArray == nil)
{
NSString *path = [[NSBundle mainBundle]pathForResource:@"data" ofType:@"plist"];
NSMutableArray *rootLevel = [[NSMutableArray alloc]initWithContentsOfFile:path];
self.muscleArray = rootLevel;
}
NSMutableArray *arrayForSearching = [NSMutableArray array];
for (NSDictionary *muscleDict in self.muscleArray)
for (NSDictionary *excerciseDict in [muscleDict objectForKey:@"exercises"])
[arrayForSearching addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[excerciseDict objectForKey:@"exerciseName"], @"exerciseName",
[muscleDict objectForKey:@"muscleName"], @"muscleName",
[muscleDict objectForKey:@"musclePicture"], @"musclePicture", nil]];
self.exerciseArray = arrayForSearching;
NSString *path = [[NSBundle mainBundle] pathForResource:@"ExerciseDescriptions"
ofType:@"plist"];
NSDictionary *descriptions = [NSDictionary dictionaryWithContentsOfFile:path];
NSMutableArray *exercises = self.exerciseArray;
for (NSInteger i = 0; i < [exercises count]; i++) {
NSDictionary *dict = [[exercises objectAtIndex:i] mutableCopy];
NSString *exerciseName = [dict valueForKey:@"exerciseName"];
NSString *description = [descriptions valueForKey:exerciseName];
[dict setValue:description forKey:@"exerciseDescription"];
[exercises replaceObjectAtIndex:i withObject:dict];
}
Код для его созданияобъект будет выглядеть так:
PFObject *preloadedExercises = [[PFObject alloc] initWithClassName:@"preloadedExercises"];
[preloadedExercises setObject:exerciseName forKey:@"exerciseName"];
[preloadedExercises saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
NSLog(@"Success");
} else {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
Массив словарей выглядит так: