【发布时间】:2012-12-29 23:16:47
【问题描述】:
我有一个包含一堆NSNumbers 的数组。当用户停止拖动它时,我从UISlider 得到一个特定的值。我想从数组中获取关闭数。
例如,如果用户将UISlider 拖到13,并且NSArray 包含NSNumbers 与10 和15;我想从数组中获取15。
数组示例:
NSArray *values = [NSArray arrayWithObjects:[NSNumber numberWithInt:15],
[NSNumber numberWithInt:20],
[NSNumber numberWithInt:30],
[NSNumber numberWithInt:45],
[NSNumber numberWithInt:60],
[NSNumber numberWithInt:90],
[NSNumber numberWithInt:110], nil];
如何从数组中得到正确的数字?
【问题讨论】:
-
我不明白这个问题。为什么不计算数组中每个元素的值的差异,并使用绝对值来决定哪个最接近?
-
当然可以。但是如果我有一个包含 1000 个值的数组呢?那是相当多的计算和内存使用。
-
数组迭代在 Objective-C 中非常有效。我经常使用它而没有性能问题。尝试使用 1000 个值并确定它是否足够快。解决方案必须足够好。
-
我不同意。该声明仅取决于项目的要求。一般来说,我认为“足够好”不是解决方案,除非它不可持续。因此,如果由于某种原因,6 个月内的数组将是 100.000,它可能是不可持续的。
-
您正在考虑一个具有 100.000 个不同离散值的滑块?听起来很奇怪。
标签: objective-c nsarray nsnumber