我有一个包含电影对象的数组。这些对象存储在影片数组中。我的电影对象在下面。
Movie.h
NSString * name;
NSString * cat_name;
我想将原始数组添加到具有动态行和节的
UITableView
中,但发现很困难。我认为做到这一点的最好方法是拥有一个数组数组。例如,将有一个包含所有恐怖电影的数组,一个包含所有小说的数组等。全部包含在一个数组中。我认为这将使我获得所需的最终产品。我发现很难编码。
编辑数组的内容是动态的,因此我不知道启动时其中会包含多少个对象(正在从JSON中解析)。因此,我需要动态创建适当数量的部分等。
最佳答案
NSMutableDictionary * mainDictionary = [[NSMutableDictionary alloc] init];
Movie * firstHorrorMovie = [[Movie alloc] init];
firstHorrorMovie.name = @"Psycho";
firstHorrorMovie.cat_name = @"Horror";
Movie * secondHorrorMovie = [[Movie alloc] init];
secondHorrorMovie.name = @"Paranormal Activity";
secondHorrorMovie.cat_name = @"Horror";
Movie * comedyMovie = [[Movie alloc] init];
comedyMovie.name = @"The new guy";
comedyMovie.cat_name = @"Comedy";
NSArray * horrorMovies = [NSArray arrayWithObjects:firstHorrorMovie, secondHorrorMovie, nil];
NSArray * comedyMovies = [NSArray arrayWithObjects:comedyMovie, nil];
[mainDictionary setValue:horrorMovies forKey:@"Horror"];
[mainDictionary setValue:comedyMovies forKey:@"Comedy"];
或(在您的情况下-动态)
NSMutableDictionary * anotherMainDictionary = [[NSMutableDictionary alloc] init];
NSArray * array = [NSArray arrayWithObjects:firstHorrorMovie, secondHorrorMovie, comedyMovie, nil];
for (Movie * movie in array) {
NSMutableArray * array = [anotherMainDictionary valueForKey:movie.cat_name];
if (array) {
[array addObject:movie];
[anotherMainDictionary setValue:array forKey:movie.cat_name];
} else {
NSMutableArray * newArray = [NSMutableArray arrayWithObject:movie];
[anotherMainDictionary setValue:newArray forKey:movie.cat_name];
}
}
关于ios - 遍历对象数组并添加到数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27356453/