Установка элемента NSMutableString в число - PullRequest
0 голосов
/ 07 октября 2009

Ола Фолкс,

Я хочу заполнить NSMutableString во время выполнения, назначив элементу конкретное число (0-255), и добавив к нему строку appendFormat.

Если бы это был массив без знака, я мог бы просто присвоить номер, используя:

UnsignedCharRay[SomeIndex] = 5;

По причинам, которые я думаю, я понимаю, но не люблю,

NSMutableStringObject[SomeIndex] = 5;

не будет работать.

Насколько я могу судить, нет методов NSString или NSMutableString для прямой установки элемента массива строк.

Есть ли способ сделать это? Если так, что это?

Пока я не найду ответ и не смогу сделать это с NSMutableString, я собираюсь использовать массив без знака и создать строку NSSt с использованием знака без знака. Помимо указания NSUTF8StringEncoding при создании NSString, есть ли другие соображения, на которые я должен обратить внимание? Каков наиболее эффективный метод создания NSString из массива unsigned char? Цель состоит в том, чтобы сохранить значения от 0 до 255 во время преобразования. Примечание: 0 будет появляться только в конце строки ... иногда.

ТИА

-isdi-

Ответы [ 2 ]

1 голос
/ 07 октября 2009

Вы можете использовать replaceCharactersInRange: withString: для установки определенного символа в индексе, если это все, что вы пытаетесь сделать.

например

[myMutableString replaceCharactersInRange:NSMakeRange(index,1) withString: value];

Однако, если вы просто хотите сохранить произвольные значения символов в массиве, вам, вероятно, лучше всего делать то, что вы уже делаете.

0 голосов
/ 07 октября 2009

Возможно, вы захотите взглянуть на replaceCharactersInRange: withString: метод NSMutableString. Это самая близкая вещь к установке элемента char[] напрямую, вы просто задаете ему диапазон длины 1.

Кроме того, вы можете просто создать набор строк, используя initWithFormat:Arguments:, а затем объединить их вместе в конце.

Не забывайте, что NSString - это сложный класс, который предназначен для предоставления всевозможных функций, управления памятью, поддержки UTF-8, ввода-вывода и многого другого. Он не предназначен для того, чтобы быть открытым буфером, в который вы пишете напрямую. Если вам действительно необходимо выполнить непосредственное манипулирование байтами, возможно, вам лучше просто использовать буфер char[] для сбора результатов и преобразовать его в NSString в конце, прежде чем вам нужно будет его отобразить?

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