【发布时间】:2013-06-04 03:26:13
【问题描述】:
这是一个带有 IB 绑定到 NSArrayController 的 NSTableView,它可以正确显示所有值。
但是,它仅按数字的第一个 char 值对数字进行排序,例如它将使 115.31 低于 2.5,以及 23.9 低于 4.71,等等。
它从包含字符串的保留 NSMutableArray 中获取值,我还尝试将所有字符串转换为 NSNumber/NSDecimalNumber,但仍然没有运气:
NSMutableArray *array1 = [[string1 componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]] mutableCopy];
NSMutableArray *array1alt = [NSMutableArray array];
for(NSString *strNum in array1)
{
NSNumber *number = strNum;
[array1alt addObject:number];
}
请帮忙,谢谢。
编辑:这就是我的 NSTableColumn(s) 的 NSMutableArray(s) 的填充方式:
NSMutableArray *rows = [NSMutableArray array];
for (NSUInteger i = 0; i < array1alt.count && i < array2.count && i < array3.count && i < array4.count; i++)
{
NSMutableDictionary *row = [NSMutableDictionary dictionary];
[row setObject:[array1alt objectAtIndex:i] forKey:@"Apples"];
[row setObject:[array2 objectAtIndex:i] forKey:@"Oranges"];
[row setObject:[array3 objectAtIndex:i] forKey:@"Peaches"];
[row setObject:[array4 objectAtIndex:i] forKey:@"Plums"];
[rows addObject:row];
}
[myArrayController2 setContent:rows2];
[aTableView reloadData];
【问题讨论】:
-
你这里的数据源是什么?一个 NSArrayController 用数字填充还是 NSMutableArray 用数字填充?无论哪种方式,在 for 循环中,如果不进行一些转换,您就不能将 NSString 分配给 NSNumber。
标签: objective-c sorting nsmutablearray nsdecimalnumber nstablecolumn