Как сделать манипуляции со строками в NSValueTransformer? - PullRequest
0 голосов
/ 24 мая 2009

У меня есть столбец таблицы, к которому я привязываю значение в NSArrayController. То, что я пытаюсь сделать, это отображать только подстроку фактического значения в контроллере массива. До сих пор я пытался это сделать, создав подкласс NSValueTransformer, а затем выполнив манипуляции со строками в методе transformedValue. Однако я не могу понять, как преобразовать входящее значение в строку (типа NSConcreteValue), и, возможно, есть более простой способ сделать это без преобразователей значения.

Ответы [ 2 ]

2 голосов
/ 24 мая 2009

Звучит так, как будто вы выполняете форматирование на стороне презентации, и в этом случае вам следует вместо этого использовать форматер.

Опять же, если это строка, содержащая несколько значений (например, что-то вроде «от 42 до 100»), вы должны вместо этого создать объект модели и сохранить их в контроллере массива. Затем вы можете привязать столбцы таблицы к определенным свойствам объектов модели, и вам не придется беспокоиться о выделении строки и последующей ее сборке (кроме случаев, когда вы загружаете и позже сохраняете модель).

Редактировать: не важно; Я не видел, чтобы значения объекта были NSValues, а не NSStrings.

1 голос
/ 25 мая 2009

Вы можете получить строковое представление любого объекта, используя метод -description, но для экземпляров NSValue вряд ли будет напечатано что-либо особенно значимое. Другими словами, ваш преобразователь значений должен интерпретировать переданный объект и создать строку. Если это экземпляр NSValue, вопрос в том, какой тип данных содержит этот экземпляр. Как только вы это узнаете, вы можете написать код для представления его в виде строки (аналогично NSStringFromRect()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...