我的设置:

  • 我有一个SQLITE数据库,从中,我从中填充了Nsdictionary对象的NSMutableArray,这是我的NstableView的数据源。
  • 其中一列存放“时间”,时间是持有秒的浮子。
  • 我想在此列中显示该值为分钟:秒。例如,我的数据是123.4329387我想显示2:03,我对列在我的NSTEXTFIEEL中应用的NSFormatter(或Nsnumberformatter)的子类使用。
  • 我通过使用IB中的表列属性进行排序设置,我只将sort键设置为“ time”,而选择器设置为“比较:”,而在没有格式的情况下可以正常工作。

目前,当我排序时,这给了我这样的东西(下降)

1:37, 1:31, 0:10, 0:10, 0:09, 1:30, 1:30, 1:26, 0:09

同样的胡说八道,看来有些事情正在发生,但绝对没有解决。

我如何看待基础数据而不是格式化的值?或者,如何指定一种自定义排序方法以及在哪里放置该方法的代码?我已经四处搜索,没有找到任何帮助我解决这个问题的东西,对此有任何帮助。

有帮助吗?

解决方案

事实证明,当它对其进行排序时,它正在使用比较:从NSString类中使用,但是它使用了基础数字数据。我不确定这里的引擎盖下发生了什么,但是我通过在称为“ TimeCompare”的NSString类别中创建自己的比较方法来解决此问题。然后,在接口构建器中,我只是将“ timecompare:”放在“表列的选择器”字段中。这使它调用我的自定义比较方法,从中我将其转换为nsnumbers的字符串并在它们上进行比较。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top