Domanda

La mia configurazione:

  • Ho un database SQLite da cui io popolo un NSMutableArray di NSDictionary oggetti questo è il DataSource per il mio NSTableView.
  • Una delle colonne detiene "tempo", il tempo è un galleggiante che tiene secondi.
  • vorrei per visualizzare i valori in questa colonna come minuti: secondi. Per esempio i miei dati sarebbero 123,4329,387 mila voglio visualizzare 02:03, che non ho alcun problema facendo con una sottoclasse di NSFormatter (o NSNumberFormatter) applicata alla mia NSTextField nella colonna.
  • Ho ordinamento creato utilizzando la colonna della tabella attributi in IB, non mi resta che il set specie chiave per "tempo" e il set di selezione per "confrontare"., Che funziona bene senza il formattatore

Al momento questo mi dà qualcosa di simile quando ho sort (decrescente)

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

e simili sciocchezze, sembra che qualcosa sta succedendo, ma non è assolutamente allineati.

Come faccio ad avere il tipo di sguardo ai dati sottostanti al posto del valore formattato? In alternativa, come faccio a specificare un metodo di ordinamento personalizzato e dove ho messo il codice per tale metodo? Ho cercato in giro un po 'e non ho trovato nulla a me dare una mano con questo problema, qualsiasi aiuto con questo è il più apprezzato.

È stato utile?

Soluzione

Si scopre che quando è stato ordinamento stava usando confrontare: dalla classe NSString ma usava il dato numerico sottostante. Io non sono esattamente sicuro che cosa tutto sta succedendo sotto il cofano qui, ma sono riuscito a risolvere il problema con la creazione di mio proprio metodo compare in una categoria di NSString chiamato "timeCompare". Poi in Interface Builder ho appena messo "timeCompare:" nel campo di selezione per la colonna della tabella. Questo diventa per chiamare il mio metodo personalizzato confronto da cui ho appena convertito le corde dato a NSNumbers e chiamata confrontano:. Su di loro

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top