Обрезка строки NSS без ее расширения

Я хочу обрезать строку до 50 символов (если она слишком длинная), поэтому я решил использовать следующий метод.

someString = [someString stringByPaddingToLength: 50 withString: @"" startingAtIndex: 0];

Могу ли я передать пустую строку после withString аргумент? Я не хочу завершать работу моего приложения, когда метод пытается добавить строку до someString 50 символов в длину. Я боюсь, что это будет плохо, потому что придется повторять строку [someString length] / 0 раз.

Должен ли я использовать nil вместо этого или искать другой способ сделать обрезку?

Спасибо.

2 ответа

Решение

Я не совсем уверен, почему вы используете stringByPaddingToLength:... метод, если вы хотите обрезать строку. Я бы подумал, что substringToIndex: Метод NSString был бы более логичным решением.

Например:

NSString *testString = @"This is a test string that contains over fifty characters. Exciting, yet true.";

if([testString length] > 50) {
    // The source string is long enough to grab a substring of.
    NSString *truncatedString = [testString substringToIndex:50];
}
else {
    // The source string is already less than fifty characters.
    NSString *truncatedString = [NSString stringWithString:testString];
}

Почему бы не использовать -[NSString substringToIndex:]?

Другие вопросы по тегам