NSString: как изменить file.png на file_320.png, не зная его суффикса «.png»?

#nsstring

#nsstring

Вопрос:

Мне нужно создать NSString для имени файла на основе ширины экрана, если файл исправлен как файл PNG, я могу сделать:

 [filename stringByReplacingOccurrencesOfString:@".png" withString:@"_320.png"]
  

но файл может не быть файлом PNG, поэтому мне нужен более общий способ добавить «_320» к имени файла независимо от его расширения, как мне это сделать?

Большое спасибо!

Ответ №1:

 NSString* ext = [filename pathExtention];
[[filename stringByDeletingPathExtension] stringByAppendingPathExtension: [NSString stringWithFormat: @"_320%@", ext]]
  

Ответ №2:

[filename stringByReplacingOccurrencesOfString:@».» Со строкой:@»_320.»]

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

1. Спасибо, работает ли это, если другая часть строки содержит точку «.»? Я уверен, что имя файла является URL-адресом.

2. Нет, я предположил, что из вашего вопроса это всегда было просто чистое имя файла. Если это для изменения полного URL-адреса, вы можете найти последнее вхождение then «.» и основывать его на этом.

3. [@»url.blah.com/file.png » rangeOfString:@».» параметры: NSBackwardsSearch];