Эквивалент "stringByDeletingPathExtension" для массива - PullRequest
0 голосов
/ 16 февраля 2011

Я хочу запустить stringByDeletingPathExtension для всех NSString членов NSArray. Как я могу сделать это в Objective-C?

1 Ответ

2 голосов
/ 16 февраля 2011

NSArray *myArray = ... ;</p> <pre><code>[myArray makeObjectsPerformSelector:@selector(stringByDeletingPathExtension)];

EDIT : Как отметили @Wevah в комментариях, это решение не решает проблему, поскольку stringByDeletingPathExtension возвращает строку, а не изменяет объект, для которого вызывается.

NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:myArray] autorelease];
for( int i = 0; i < [newArray count]; i++ ) {
   NSString* oneItem = [newArray objectAtIndex:i];
   [newArray replaceObjectAtIndex:i withObject:[oneItem stringByDeletingPathExtension]]; 
}

затем используйте ваш новый массив ...

...