0 votes

Comment faire de la manipulation de chaînes de caractères dans un NSValueTransformer ?

J'ai une colonne de tableau que je lie à une valeur dans un fichier NSArrayController . Ce que j'essaie de faire, c'est d'afficher uniquement une sous-chaîne de la valeur réelle dans le contrôleur de tableau. La façon dont j'ai essayé de le faire jusqu'à présent est de créer un fichier de type NSValueTransformer puis en effectuant la manipulation des chaînes de caractères dans la sous-classe transformedValue méthode. Cependant, je n'arrive pas à trouver comment transformer la valeur entrante en une chaîne de caractères (elle est de type NSConcreteValue ), et il y a peut-être un moyen plus simple de le faire sans transformateurs de valeur.

2voto

Peter Hosey Points 66275

On dirait que vous effectuez un formatage du côté de la présentation, auquel cas vous devriez plutôt utiliser un formateur.

Par contre, s'il s'agit d'une chaîne contenant plusieurs valeurs (par exemple, quelque chose comme "de 42 à 100"), vous devriez plutôt créer un objet modèle à partir de cette chaîne et le stocker dans le contrôleur de tableau. Vous pourrez alors lier les colonnes de votre tableau à des propriétés spécifiques des objets de modèle, sans avoir à vous soucier de séparer la chaîne et de la réassembler (sauf lorsque vous chargez et enregistrez le modèle).

Edit : Never mind ; je n'avais pas vu que les valeurs des objets sont des NSValues, et non des NSStrings.

1voto

Jim Dovey Points 8384

Vous pouvez obtenir une représentation sous forme de chaîne de caractères de tout objet en utilisant la fonction -description mais pour les instances de NSValue, il est peu probable qu'elle affiche quelque chose de particulièrement significatif. En d'autres termes, c'est à votre transformateur de valeur d'interpréter l'objet transmis et de produire une chaîne de caractères. S'il s'agit d'une instance de NSValue, la question est de savoir quel type de données cette instance contient. Une fois que vous le savez, vous pouvez écrire du code pour le représenter sous forme de chaîne de caractères (similaire à NSStringFromRect() ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X