Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我有一个名称数组,我想将节标题设为字母,例如A BC。还有索引。用名称数组制作Sections的最有效方法是什么
这是您的整个方法。
这里节数=
行数=
输出:
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我有一个名称数组,我想将节标题设为字母,例如A BC。还有索引。用名称数组制作Sections的最有效方法是什么
最佳答案
这是我开发的在NSArray
上处理并创建您所关注的NSDictionary
的方法。
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray* internalArray = [NSMutableArray arrayWithObjects:@"abc",@"xyz",@"aa",@"bb", nil];
NSDictionary* dictStructued = [self sortArrayAndMakeStructur:internalArray];
NSLog(@"Output : %@",dictStructued.description);
}
这是您的整个方法。
-(NSMutableDictionary*)sortArrayAndMakeStructur:(NSArray*)array{
NSMutableDictionary* dictIndexes = [[NSMutableDictionary alloc]init];
NSArray* sortedArray = [array sortedArrayUsingSelector:
@selector(localizedCaseInsensitiveCompare:)];
for (int i=0; i<[sortedArray count]; i++) {
NSString* strName = sortedArray[i];
if ([[dictIndexes allKeys] containsObject:[[strName substringToIndex:1] uppercaseString]]) {
NSMutableArray* internalArray = [NSMutableArray arrayWithArray:[dictIndexes valueForKey:[[strName substringToIndex:1] uppercaseString]]];
[internalArray addObject:strName];
[dictIndexes setObject:internalArray forKey:[[strName substringToIndex:1] uppercaseString]];
}
else{
NSMutableArray* internalArray = [NSMutableArray arrayWithObjects:strName, nil];
[dictIndexes setObject:internalArray forKey:[[strName substringToIndex:1] uppercaseString]];
}
}
return dictIndexes;
}
这里节数=
[[dictStructued allKeys] count];
行数=
[[dictIndexes valueForKey:yourKey] count];
输出:
{
A = (
aa,
abc
);
B = (
bb
);
X = (
xyz
);
}