Question

Ma configuration:

  • J'ai une base de données SQLite dont je remplir un NSMutableArray de NSDictionary objets c'est le DataSource pour mon NSTableView.
  • L'une des colonnes détient le « temps », le temps est un flotteur qui maintient secondes.
  • Je voudrais afficher les valeurs dans cette colonne en minutes: secondes. Par exemple mes données seraient 123,4329387 je veux afficher 2h03 que je n'ai aucun problème avec faire une sous-classe de NSFormatter (ou NSNumberFormatter) appliquée à mon NSTextField dans la colonne.
  • J'ai mis en place le tri à l'aide du tableau Attributs de colonne dans IB, je viens de l'ensemble clé de tri pour le « temps » et l'ensemble de sélecteur « comparer ». Qui fonctionne très bien sans formatter

À l'heure actuelle cela me donne quelque chose comme ça quand je sort (décroissant)

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

et un non-sens similaire, il ressemble à quelque chose qui se passe, mais il est certainement pas triée.

Comment puis-je obtenir le genre de regarder les données sous-jacentes au lieu de la valeur formatée? Sinon, comment puis-je spécifier une méthode de tri personnalisé et où dois-je mettre le code pour ladite méthode? J'ai cherché autour d'un peu et ai rien trouvé pour me aider avec ce problème, toute aide à c'est le plus apprécié.

Était-ce utile?

La solution

Il se trouve que quand il triait qu'il utilisait comparer: de la classe NSString mais il utilisait les données numériques sous-jacentes. Je ne suis pas sûr de ce que tout va ici sous le capot, mais j'ai réussi à résoudre ce problème en créant ma propre méthode de comparaison dans une catégorie de NSString appelée « timeCompare ». Ensuite, dans l'interface builder je viens de mettre « timeCompare: » dans le champ de sélection pour la colonne de la table. Ce qu'il obtient d'appeler ma méthode comparer personnalisée à partir de laquelle je viens converti les chaînes données à NSNumbers et comparer appel:. Sur les

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top