我在sqlite数据库中有一系列的数据,格式如下屏幕截图所示。
我已将所有这些值存储在一个字符串数组中。现在,我需要对数组中的对象进行排序,使结果如下,并在表格视图中显示。<10厘米
90 - 130厘米
240 - 300厘米
400 - 600厘米
'>700厘米
我尝试了一些代码。
示例代码1:
var arr = ["240 - 300 cm", "400 - 600 cm ", "90 - 130 cm", "<10 cm", ">700 cm"]
var arr1 = arr.sorted{$0 < $1}
然而,这种方法似乎对包含字母数字字符的字符串有效。因此,我尝试了另一种方法。
示例代码2:
var arr1 = [NSValue.init(range: NSMakeRange(240, 300)), NSValue.init(range: NSMakeRange(400, 600)), NSValue.init(range: NSMakeRange(90, 130))]
var arr2 = arr1.sorted{$0.rangeValue.location < $1.rangeValue.location}
for range in arr2 {
print("\(range.rangeValue.location) - \(range.rangeValue.length) cm")
}
但是,为了使这种方法起作用,我必须执行以下操作:
根据要求以格式(例如90-130厘米)操纵数据,以便我可以混合它以适应NSRange。
对于像<10厘米和>700厘米这样的值,我必须单独处理。也许,在数组排序后将这些值插入第一个索引和最后一个索引,但还没有尝试过。
在数组排序后,再次以适当的格式打印该值,我已经使用上面示例代码中的for循环完成了此操作。
这种方法似乎可以工作,但需要付出大量时间和操作的代价。如果有100行这样的数据,我不知道性能如何。
我的问题是,是否有更好且简明的方法在iOS中按范围格式对数据进行排序?
非常感谢任何帮助。