Просмотрите документацию NSString, там вы найдете stringByDeletingPathExtension
.
Основная идея заключается в том, что вы не хотите обновлять объекты в существующем массиве, но создаете новый массив с именами файлов без расширения и выбрасываете исходный массив.
Вот как это можно сделать:
NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);
stuff = [stuff valueForKey:@"stringByDeletingPathExtension"];
NSLog(@"output %@", stuff);
Я не ожидаю, что вы поймете этот код, поэтому вот более простая версия:
NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);
NSMutableArray *output = [NSMutableArray array];
for (NSString *filename in stuff) {
NSString *filenameWithoutExtension = [filename stringByDeletingPathExtension];
[output addObject:filenameWithoutExtension];
}
NSLog(@"output %@", output);