Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iphone+;如何对金额字符串进行排序_Ios_Nsmutablearray_Nsdictionary_Nssortdescriptor - Fatal编程技术网

Ios iphone+;如何对金额字符串进行排序

Ios iphone+;如何对金额字符串进行排序,ios,nsmutablearray,nsdictionary,nssortdescriptor,Ios,Nsmutablearray,Nsdictionary,Nssortdescriptor,我有像1000、100000、10000000、5000这样的金额字符串值。问题是我使用排序描述符进行排序。按字符串排序正确,但在转换为1k、10k、1m、5k后不起作用,请告诉我您的建议 这是我的源代码 [m_sortTempArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { NSDictionary *dict1 = obj1; NSDiction

我有像1000、100000、10000000、5000这样的金额字符串值。问题是我使用排序描述符进行排序。按字符串排序正确,但在转换为1k、10k、1m、5k后不起作用,请告诉我您的建议

这是我的源代码

[m_sortTempArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {

                NSDictionary *dict1 = obj1;
                NSDictionary *dict2 = obj2;

                NSString *string1 = nil;
                NSString *string2 = nil;
                if (1)
                {
                    if ([[dict1 objectForKey:@"kpiData"] count]>0 && [[dict2 objectForKey:@"kpiData"] count]>0) {

                        string1 = [[[dict1 objectForKey:@"kpiData"] objectAtIndex:kIndex] objectForKey:@"kpiActual"];
                        string2 = [[[dict2 objectForKey:@"kpiData"] objectAtIndex:kIndex] objectForKey:@"kpiActual"];
                    } else {
                        //return 0;
                        string1=@"0";
                        string2=@"0";
                    }
                }

                if ([string2 isEqualToString:@""]){
                    string2 = @"0";
                }

                if ([string1 isEqualToString:@""]){
                    string1 = @"0";
                }


                if ([string1 integerValue]  > [string2 integerValue] ) {
                    return (NSComparisonResult)NSOrderedAscending;
                }

                if ([string1 integerValue]  < [string2 integerValue] ) {
                    return (NSComparisonResult)NSOrderedDescending;
                }
                return (NSComparisonResult)NSOrderedSame;

            }];
[m_sortTempArray sortUsingComparator:^n比较结果(id obj1,id obj2){
NSDictionary*dict1=obj1;
NSDictionary*dict2=obj2;
NSString*string1=nil;
NSString*string2=nil;
如果(1)
{
如果([[dict1 objectForKey:@“kpiData”]计数]>0&[[dict2 objectForKey:@“kpiData”]计数]>0){
string1=[[dict1 objectForKey:@“kpiData”]objectAtIndex:kIndex]objectForKey:@“kpiActual”];
string2=[[dict2 objectForKey:@“kpiData”]objectAtIndex:kIndex]objectForKey:@“kpiActual”];
}否则{
//返回0;
string1=@“0”;
string2=@“0”;
}
}
if([string2 IsequalString:@”“){
string2=@“0”;
}
if([string1 IsequalString:@”“){
string1=@“0”;
}
如果([string1 integerValue]>[string2 integerValue]){
返回(NSComparisonResult)或删除;
}
如果([string1 integerValue]<[string2 integerValue]){
返回(NSComparisonResult)或撤销;
}
返回(NSComparisonResult)命令名;
}];

如果您使用的是国际单位制,您可以使用中的转换器将这些数字重新转换回浮点数。该代码假定数字和单位之间有一个空格,因此需要对其进行修改。您可能会发现,转换为工程符号也很有用