2011-02-16 66 views
0

我想爲NSArray的所有NSString成員運行stringByDeletingPathExtension。我如何在Objective-C中做到這一點?對於數組「stringByDeletingPathExtension」的等效

+0

你是什麼意思 「equellent」 是什麼意思? – Eimantas 2011-02-16 10:09:00

+0

你的意思是在NSArray的每個成員上執行這個方法嗎?請澄清你的問題。 – Moszi 2011-02-16 10:12:18

回答

2

NSArray *myArray = ... ;

[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]]; 
} 

然後用你的newArray ...