我想运行stringByDeletingPathExtension
为一个NSArray所有的NSString成员。 我怎样才能做到这一点在Objective-C?
Answer 1:
NSArray *myArray = ... ;
[myArray makeObjectsPerformSelector:@selector(stringByDeletingPathExtension)];
编辑 :作为@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 ...
文章来源: Equivalent for “stringByDeletingPathExtension ” for an array