我有一个NSMutableArray
NSDictionaries
我想要格式化,以便UITableView
使用基于NSDictionary keys
之一的部分。
我的NSDicitonary
有两个值
Name
Key
键是数字1的NSString
- N
我设法创建了一个NSArray
个唯一值来填充每个部分的标题,但是我不知道如何拆分这个NSMutableArray
的NSDictionaries {{1} NSNictionaries的NSArrays的NSMutableArray ..如果这是有意义的。
更新 为了向我的问题添加更多细节,我有一个NSDictionaries的NSMutableArray。
into an
我希望在像这样的UITableView中显示它
{
Name: Jack
Key: 1
}
{
Name: John
Key: 1
}
{
Name: Jack
Key: 1
}
{
Name: Jack
Key: 2
}
{
Name: Jack
Key: 3
}
{
Name: Sean
Key: 3
}
{
Name: Sally
Key: 3
}
我确定需要做的事情是
Section 1
- Jack
- John
- Jack
Section 2
- Jack
Section 3
- Jack
- Sean
- Sally
我已成功为部分
创建了uniqueArray- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
现在我不知道如何找到每个部分中的行数,然后将NSDictionary传递给cellforrow中的一个对象,以便在单元格中显示正确的值?
任何帮助将不胜感激。
答案 0 :(得分:0)
希望这会对你有所帮助:
// testing
NSMutableArray *test = [[NSMutableArray alloc]init];
NSArray *testSample = @[@{@"1": @"hello1",@"2":@"world1",@"3":@"!1"},
@{@"1": @"hello2",@"2":@"world2",@"3":@"!2"},
@{@"1": @"hello3",@"2":@"world3",@"3":@"!3"}];
[test addObjectsFromArray:testSample];
NSMutableArray *sortedTestArray = [[NSMutableArray alloc] init];
NSLog(@"%@",test);
//get the max length of the nsdictionary
NSDictionary *item0 = [test objectAtIndex:0];
NSInteger maxLength = [[item0.allKeys lastObject] integerValue];
//key start from @"1"
for (int a = 1; a <= maxLength; a++) {
NSString *keyNumber = [NSString stringWithFormat:@"%d", a];
NSArray *sortedItem = [test valueForKey:keyNumber];
//the index starts from 0
[sortedTestArray insertObject:sortedItem atIndex:a-1];
}
//now the array will be like this,so the item in index 0 will be the key @"1"'s items. index 1 will be the key @"2"'s items...
NSLog(@"%@",sortedTestArray);
原始数据:
(
{
1 = hello1;
2 = world1;
3 = "!1";
},
{
1 = hello2;
2 = world2;
3 = "!2";
},
{
1 = hello3;
2 = world3;
3 = "!3";
}
)
排序后的输出:
(
(
hello1,
hello2,
hello3
),
(
world1,
world2,
world3
),
(
"!1",
"!2",
"!3"
)
)