-->

等效为“stringByDeletingPathExtension”为阵列(Equivalent f

2019-10-29 07:26发布

我想运行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