好的,我正在尝试从一个值中创建一个 indexPath 值,NSArray
这样NSDictionary
当我进入我的 tableview 时,我可以在旁边放置一个辅助刻度。
我有一个NSArray
像NSDictionaries
这样的
{
HAS = 1;
ISL = 1;
ISV = 0;
MAN = BANKING;
MON = 324;
}
因此,该数组将有大约 80 个这些条目,每个条目都有不同的值..
要创建 IndexPath,我需要计算 MAN 的唯一首字母的数量,直到MAN == selected String这会给我部分编号。
然后我需要计算行的选定部分类型中有多少条目。
我已经从这里得到了一些帮助,但是我没有发现我的逻辑中的缺陷.. 对于我正在计算所有整体的行,而不是从所选部分的开头开始计算我的行数完全被填满。下面是我想要实现的一个例子。
a, aa, b, c, d, dd, ddd, dddd, e, f, g, gg
用户选择 ddd 所以 indexpath 将是
部分
a, b, c, (d), e, f, g = 3
排
d, dd, (ddd), dddd = 2
我可以像这样得到这个部分
NSArray *MANArray = [sortedArray valueForKey:@"MAN"];
NSMutableArray *letters = [NSMutableArray array];
NSString *currentLetter = nil;
for (NSString *string in MANArray) {
if (string.length > 0) {
NSString *letter = [string substringToIndex:1];
if (![letter isEqualToString:currentLetter]) {
[letters addObject:letter];
currentLetter = letter;
}
}
}
NSArray *firstLetterArray = [NSArray arrayWithArray:letters];
int sectionCount = 0;
for(int i=0; i<[firstLetterArray count]; i++){
if( [[firstLetterArray objectAtIndex:i] isEqualToString:completedStringLetter]){
sectionCount = i;
NSLog(@"%d", sectionCount);
}
}
但是当我试图从所选部分获取行数时,我只是卡住了。
任何帮助将不胜感激。
更新:
这是我在选择值之前所做的计数,但就像我说的那样它不正确,因为它需要根据第一个字母从部分开始。
NSNumber * myNumber = [NSNumber numberWithInteger:[modIdString integerValue]];
//
NSArray *subarray = [sortedArray valueForKey:@"MOD"];
for(int i=0; i<[subarray count]; i++){
if( [[subarray objectAtIndex:i] isEqualToNumber:myNumber]){
//you have found it, do whatever you need, and break from the loop
modelResultIndexPath = nil;
modelResultIndexPath = [NSIndexPath indexPathForRow:sectionCount inSection:i];
}
}