我正在进行一项任务,我必须使用for循环在数组中找到最高值,而不进行排序.我觉得我到目前为止已接近正确但不完全正确.下面是我到目前为止的代码示例.
NSArray *unsortedArray = @[ @2, @44, @11, @99, @35 ]; for (int i = 0; i < 4 ; i++) { id number = [unsortedArray objectAtIndex:i]; id largestNumber = 0; if (largestNumber < number) { largestNumber = number; NSLog(@"%@ is the largest number", largestNumber ); return 0; } }
现在这只返回区域中的第一个值然后循环停止,我是否将错误的值分配给maximumNumber和number?代码很新,所以我很感激,反馈和例子.
谢谢!
键值编码解决方案,无循环
NSArray *unsortedArray = @[ @2, @44, @11, @99, @35 ]; NSNumber *maxNumber = [unsortedArray valueForKeyPath:@"@max.self"]; NSLog(@"%@", maxNumber); // 99
请参阅Mattt Thompson撰写的这篇有趣的文章: KVC Collection Operators