有了这个
NSSortDescriptor *lessonDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lesson" ascending:YES];
[resultArray sortUsingDescriptors:[NSArray arrayWithObject:lessonDescriptor]];它将"lesson"-objects排序为
(
{
lesson = 9;
subject = bg;
},
{
lesson = 8;
subject = bg;
},
{
lesson = 11;
subject = CAE;
},
{
lesson = 11;
subject = CAE;
},
{
lesson = 10;
subject = CAE;
},
{
lesson = 10;
subject = CAE;
},
{
lesson = 5;
subject = Gg;
},
{
lesson = 4;
subject = G;
},
{
lesson = 3;
subject = G;
},
{
lesson = 2;
subject = M;
},
{
lesson = 1;
subject = M;
})
如你所见,它不能正确计数..有人能帮帮忙吗?
非常感谢
编辑:
不知道如何实现值thing =)
else if ([currentElement isEqualToString:@"lesson"])
{
NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"trimmed: %@",trimmedString);
int value = [trimmedString intValue]; ??
[currentSummary appendString:value]; ??
[currentSummary appendString:trimmedString];
} 发布于 2010-10-16 22:38:46
为了让排序描述符正常工作,您必须在将“lesson”转换为数字之前修剪字符串。否则,排序描述符只能看到字符串值,而看不到数字。下面是删除空格和换行符的方法:
NSString *stringValue = [parsedValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];调用stringValue intValue将获得字符串的整数值
int value = [stringValue intValue];在调用此属性的排序描述符之前,将此值保存到数组中。
告诉我它能不能用。
发布于 2010-10-17 00:15:51
它对它进行了恰到好处的排序。毕竟,每个条目都是一个字符串,而在字符串中,"10“毕竟在"9”之前...
现在,如果你想以你期望的方式对它进行排序,你要么需要持有NSNuumber对象并进行排序,要么让字符串以"08","09","10“这样的规范化形式持有,然后可能在以后从字符串中去掉前导0。
发布于 2013-01-08 13:42:07
[NSSortDescriptor sortDescriptorWithKey:@"self"
ascending:YES
comparator:^(id obj1, id obj2){
return [(NSString*)obj1 compare:(NSString*)obj2
options:NSNumericSearch];
}];排序范围为0- 1000000.....往前走。
https://stackoverflow.com/questions/3949294
复制相似问题