NSString stringWithFormat сам добавляет новую строку

#iphone #objective-c #nsstring #nslog

#iPhone #objective-c #nsstring #nslog

Вопрос:

Почему это:

 NSString *url = [NSString stringWithFormat:@"http://www.example.com/profile/%@/?s_iphone=true", author];
NSLog(@"url: %@", url);
  

Выведите это:

 http://www.example.com/profile/AuthorName
            /?s_iphone=true
  

Излишне говорить, что URL не будет загружаться, потому что новая строка добавляется к строке сама по себе. Я пробовал удалять пробелы / новые строки и все еще получал тот же результат. Это сводит меня с ума.

Мэтт

Комментарии:

1. Вы проверяли author , существует ли новая строка непосредственно перед вызовом приведенного выше кода?

2. Спасибо, забыл подумать об этом.

Ответ №1:

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

 NSString *url = [NSString stringWithFormat:@"http://www.example.com/profile/%@/?s_iphone=true", [author stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
NSLog(@"url: %@", url);
  

Это исправит любые символы новой строки в начале и конце вашей author строки.

Комментарии:

1. Спасибо, у меня есть пользовательский метод только для этой цели и некоторые дополнительные, я прогнал его и исправил свою проблему. Иногда просто не соображаю ясно.

Ответ №2:

У автора определенно есть новая строка в нем. Попробуйте это:

NSLog(@"The author is %@ on a new line?", author);

Комментарии:

1. Да, странно, что мой метод удаления новых строк не сработал со всей строкой, а сработал бы только с переменной. Автором была строка, взятая из XML, у которой в конце есть неприятные новые строки. Спасибо.