我正在尝试通过对象数组进行排序来查找最大数字。我对客观的C(和一般的C)很新,所以我不确定为什么这不起作用,尽管我的直觉说它可能是由于NSNumber声明。最大变量总是作为数组中的随机值返回。有任何想法吗?下面通过数组对象进行排序以查找最大数字
NSNumber * max = 0;
for (int i=0; i<mutableChartData.count; i++) {
if ([mutableChartData objectAtIndex:i] > max) {
max =[mutableChartData objectAtIndex:i];
}
}
您确定要使用指针? – Biffen 2014-09-03 11:39:05
检查此[链接](http://stackoverflow.com/questions/3080540/finding-maximum-numeric-value-in-nsarray) – Pawan 2014-09-03 11:40:23
你的代码不工作的原因是,你正在比较数组不正确。 Objective-C集合类只能存储对象,例如NSObject的后代,如NSNumber - 它看起来像你在这里使用的。对象变量你的最大变量是指针,而不是实际的对象。因此,当您查看max值时,您不会看到实际的NSNumber对象,而是看到一个内存引用 - 它指向NSNumber对象的位置。 – mmccomb 2014-09-03 11:58:02