Bil*_*iff 2 iphone cocoa-touch nsstring
我有一个NSString被赋予一个字符串值.如何在文件名和扩展名之间NSString插入并插入@"-thumbnail"?
换句话说,我该怎么做:
NSString *fileName = @"myFile.png";
Run Code Online (Sandbox Code Playgroud)
至:
NSString *thumbnailName = [NSString someMagicFunction...]
NSLog(@"%@", thumbnailName); // Should Output "myFile-thumbnail.png"
Run Code Online (Sandbox Code Playgroud)
e.J*_*mes 11
路径组件的NSString添加可以派上用场,特别是:pathExtension和stringByDeletingPathExtension
编辑:另见: stringByAppendingPathExtension :(由 Dave DeLong指出)
NSString * ext = [fileName pathExtension];
NSString * baseName = [fileName stringByDeletingPathExtension];
NSString * thumbBase = [baseName stringByAppendingString:@"-thumbnail"];
NSString * thumbnailName = [thumbBase stringByAppendingPathExtension:ext];
Run Code Online (Sandbox Code Playgroud)
如果你真的希望它magicFunction存在,你可以像这样向NSString添加一个类别方法:
@interface NSString (MoreMagic)
- (NSString *)stringByAddingFileSuffix:(NSString *)suffix;
@end
@implementation NSString (MoreMagic)
- (NSString *)stringByAddingFileSuffix:(NSString *)suffix
{
NSString * extension = [self pathExtension];
NSString * baseName = [self stringByDeletingPathExtension];
NSString * thumbBase = [baseName stringByAppendingString:suffix];
return [thumbBase stringByAppendingPathExtension:extension];
}
@end
Run Code Online (Sandbox Code Playgroud)
使用如下:
NSString * thumbnailName = [fileName stringByAddingFileSuffix:@"-thumbnail"];
Run Code Online (Sandbox Code Playgroud)