Pregunta

Mi configuración:

  • Tengo una base de datos SQLite desde el que pueblan un NSMutableArray de objetos NSDictionary este es el origen de datos para mi NSTableView.
  • Una de las columnas tiene "tiempo", el tiempo es un flotador que mantiene segundos.
  • Me gustaría mostrar los valores en esta columna como minutos: segundos. Por ejemplo mis datos serían 123.4329387 Quiero mostrar 02:03, que no tengo ningún problema con hacer una subclase de NSFormatter (o NSNumberFormatter) aplicado a mi NSTextField en la columna.
  • he sorting establecido mediante el uso de la columna de tabla de atributos en el IB, sólo tengo el conjunto clave de ordenación de "tiempo" y el conjunto de selección a "comparar". Que funciona bien sin el formateador

En la actualidad esto me da algo como esto cuando me especie (descendente)

01:37, 01:31, doce y diez, doce y diez, 0:09, 1:30, 1:30, 1:26, 0:09

y tonterías por el estilo, parece que algo está pasando, pero definitivamente no está solucionado.

¿Cómo llego a la clase vistazo a los datos subyacentes en lugar del valor con formato? Alternativamente, ¿Cómo se especifica un método de ordenación personalizada y dónde pongo el código para dicho método? He buscado todo un poco y no he encontrado nada que me ayude con este problema, cualquier ayuda con esto es muy apreciada.

¿Fue útil?

Solución

Resulta que cuando se estaba clasificando estaba utilizando comparar: a partir de la clase NSString pero estaba usando los datos numéricos subyacente. No estoy exactamente seguro de lo que todo está pasando bajo el capó aquí, pero me las arreglé para solucionar este problema mediante la creación de mi propio método de comparación en una categoría de NSString llamado "timeCompare". Luego, en el Interface Builder acabo de poner "timeCompare:" en el campo de selección para la columna de la tabla. Esto nos lleva a llamar a mi costumbre método de comparación de la que acaba de convertir las cadenas dadas a NSNumbers y comparan llamada:. En ellos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top