Objective C - Удаляет последний знак из строки

В Objective C для iOS, как я удалил бы последний знак строки с помощью действия кнопки?

150
задан Cœur 26 June 2019 в 12:49
поделиться

3 ответа

В своем классе контроллера создайте метод действия, к которому вы подключите кнопку в Интерфейсном Разработчике. Внутри этого метода вы можете обрезать свою строку следующим образом:


if ([string length] > 0) {
    string = [string substringToIndex:[string length] - 1];
} else {
    //no characters to delete... attempting to do so will result in a crash
}






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

string = [string substringToIndex:string.length-(string.length>0)];

* Объяснение причудливого однострочного фрагмента кода:

Если есть символ, который нужно удалить (т. Е. Длина строки больше 0)
(string.length> 0) возвращает 1 , таким образом возвращая код:
string = [string substringToIndex: string.length-1];

Если нет символа для удаления (т.е. длина строки НЕ больше 0)
(string.length> 0) возвращает 0 , таким образом возвращая код:
string = [string substringToIndex: string.length-0];
Что предотвращает сбои.

416
ответ дан 23 November 2019 в 22:18
поделиться

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

[myString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];
53
ответ дан 23 November 2019 в 22:18
поделиться

Документация - ваш друг, NSString поддерживает вызов substringWithRange , который может сократить строку, которая у вас есть, и возвращает сокращенную строку. Вы не можете изменить экземпляр NSString , он неизменен. Если у вас есть NSMutableString , есть метод под названием deleteCharactersInRange , который может изменять строку на месте

...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...
6
ответ дан 23 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: