如何使用amount将包含对象的NSMutableArray排序为数据

Dil*_*lip 1 iphone ios

我有一个NSMutableArray,它包含对象作为数据,它包含三个值,即日期,名称和数量.

所以我的数组看起来像这样

date   name   amount
08/12  atest  1000
08/13  btest  200
08/14  ctest  3000
08/15  dtest  4000
08/13  etest  5000
Run Code Online (Sandbox Code Playgroud)

现在我正在使用此代码对数据进行排序

金额

[tableAry sortUsingDescriptors:[NSArray arrayWithObject:
[NSSortDescriptor sortDescriptorWithKey:@"amount" 
ascending:NO selector:@selector(caseInsensitiveCompare:)]]];
Run Code Online (Sandbox Code Playgroud)

但它说我的200记录大于1000记录排序数据是这样的:

5000
4000
3000
200
1000
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

看起来金额存储为NSString值.您可以按照您链接的答案中描述的方式修复它(即通过将数字的字符串表示替换为存储为的数字NSNumber),或者通过添加intValue到描述符来解决它:

[tableAry sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"amount.intValue" ascending:NO]]];
Run Code Online (Sandbox Code Playgroud)