用于uitableview分组的多个数组中的objective-c溢出数组
Posted
技术标签:
【中文标题】用于uitableview分组的多个数组中的objective-c溢出数组【英文标题】:objective-c spilt array in multiple arrays for uitableview grouped 【发布时间】:2010-10-13 13:36:07 【问题描述】:嗨,我有一个需要排序的对象数组(名称上的字母)
ArtistVO *artist1 = [ArtistVO alloc];
artist1.name = @"Trentemoeller";
artist1.imgPath = @"imgPath";
ArtistVO *artist2 = [ArtistVO alloc];
artist2.name = @"ATrentemoeller";
artist2.imgPath = @"imgPath2";
ArtistVO *artist3 = [ArtistVO alloc];
artist3.name = @"APhextwin";
artist3.imgPath = @"imgPath2";
//NSLog(@"%@", artist1.name);
NSMutableArray *arr = [NSMutableArray array];
[arr addObject:artist1];
[arr addObject:artist2];
[arr addObject:artist3];
NSSortDescriptor *lastDescriptor =
[[[NSSortDescriptor alloc]
initWithKey:@"name"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
NSArray * descriptors =
[NSArray arrayWithObjects:lastDescriptor, nil];
NSArray * sortedArray =
[arr sortedArrayUsingDescriptors:descriptors];
NSLog(@"\nSorted ...");
NSEnumerator *enumerator;
enumerator = [sortedArray objectEnumerator];
ArtistVO *tmpARt;
while ((tmpARt = [enumerator nextObject])) NSLog(@"%@", tmpARt.name);
工作正常。但现在我需要将这个 awway 拆分为在分组的 uitableview 中使用
self.sortedKeys =[[NSArray alloc]
initWithObjects:@"search",@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z",nil];
NSMutableArray *arrTemp0 = [[NSMutableArray alloc]
initWithObjects:@"000",nil];
NSMutableArray *arrTemp1 = [[NSMutableArray alloc]
initWithObjects:@"Andrew",@"Aubrey",@"Aalice", @"Andrew",@"Aubrey",@"Alice",@"Andrew",@"Aubrey",@"Alice",nil];
NSMutableArray *arrTemp2 = [[NSMutableArray alloc]
initWithObjects:@"Bob",@"Bill",@"Bianca",@"Bob",@"Bill",@"Bianca",nil];
NSMutableArray *arrTemp3 = [[NSMutableArray alloc]
initWithObjects:@"Candice",@"Clint",@"Chris",@"Candice",@"Clint",@"Chris",nil];
NSMutableArray *arrTemp4 = [[NSMutableArray alloc]
initWithObjects:@"Dandice",@"Dlint",@"Dhris",nil];
NSDictionary *temp =[[NSDictionary alloc]
initWithObjectsAndKeys:arrTemp0, @"search", arrTemp1,@"A",arrTemp2,
@"B",arrTemp3,@"C",arrTemp4,@"D",nil];
self.tableContents =temp;
所以所有第一个字母“a”的艺术家都在一个数组中……“b”在一个数组中,依此类推。
我需要做一些字符串比较还是有更好的方法?
【问题讨论】:
【参考方案1】:怎么样:
创建一个空的 NSMutableDictionary。
遍历所有字符串。对于每个字符串:
如果字符串为空,则忽略此字符串。 获取包含转换为大写字符串的第一个字符的 NSString。这将是您的字典键。 查字典看它是否已经包含这个键。 如果没有,请创建一个仅包含您的字符串的新 NSMutableArray,并将其作为值添加到此新键中。 如果是这样,请将此字符串添加到现有数组的末尾。循环结束。
【讨论】:
谢谢。认为可能有一种更小的方式,例如:“通过选择器从数组返回数组”类似于排序描述符的东西以上是关于用于uitableview分组的多个数组中的objective-c溢出数组的主要内容,如果未能解决你的问题,请参考以下文章