NSString Проблема - PullRequest
       3

NSString Проблема

0 голосов
/ 28 ноября 2010
NSRange rangetxt={0,(index-1)};
NSString *tempStr= textBox.text;
NSString *tempTextBox=[tempStr substringWithRange:rangetxt];

Привет всем,

Я хочу знать, почему мой вставленный код не работает должным образом, когда компилятор передает substringWithRange Он завис и не присваивает никакое значение tempTextBox,Во-вторых, я пробовал использовать функцию NSString substringToIndex, но она тоже не работает. Моя цель - пропустить последний символ при копировании tempStr в tempTextBox.

С уважением к MGD

Ответы [ 4 ]

2 голосов
/ 28 ноября 2010

Я протестировал этот код, и он работает:

NSString *strTest = @"Word";
NSRange range = {0, 3};
NSString *strTemp = [strTest substringWithRange: range];

Результат: strTemp = "Wor"

Так что проблема в другом: index не правильный или textBox.text может быть пустым.

Поместите точку останова на строку substringWithRange: и посмотрите на значения index и tempStr до появления проблемы.

2 голосов
/ 28 ноября 2010

Вы должны использовать NSMakeRange(loc, len) для создания объекта NSRange вместо использования {} .

1 голос
/ 28 ноября 2010

Вы не показываете код, который инициализирует index.Я думаю, это вне диапазона.Обратите внимание, что substringWithRange вызывает NSRangeException, если какая-либо часть диапазона находится за пределами конца приемника.

Попробуйте это:

NSString *tempStr = textBox.text;
NSRange rangetxt;
if ([tempStr length] > 0)
    rangetxt = NSMakeRange(0, [tempStr length] - 1);
else
    rangetxt = NSMakeRange(0, 0); 
NSString *tempTextBox = [tempStr substringWithRange:rangetxt];
0 голосов
/ 28 ноября 2010

Я думаю, что я решил свою проблему. Во время отладки, когда я прохожу через эту строку, мой GDB говорит: «Истекло время получения данных. Отображение переменной может быть неточным», поэтому я обнаружил, что решение просто установило точку останова после инициализации NSString объекты

Спасибо за помощь всем

MGD

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