Прежде всего, вы используете неправильный метод. Обрезка строки удалит только символы в начале и конце строки.
То, что вы ищете, похоже на:
fileName = [fileName stringByReplacingOccurrencesOfString:@"/" withString:@"_"];
Однако это неоптимальное решение, поскольку вам придется делать это для каждого символа, который вы хотите исключить, поэтому, возможно, вы хотите продолжать искать или писать свой собственный метод для манипулирования строкой.
iOS основана на UNIX, и поэтому я предполагаю, что она поддерживает практически любые символы в именах файлов. UNIX допускает пробелы, <,>, |, \,:, (,), &,;, а также символы подстановки, такие как? и *, для кавычек или экранирования с помощью символа \. Однако я не буду использовать ни один из этих символов в моих именах файлов. На самом деле, я бы ограничил символы в именах файлов до «a» - «z», «0» - «9», «_» и «.».