首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString问题

NSString问题
EN

Stack Overflow用户
提问于 2010-12-29 11:14:53
回答 3查看 1.8K关注 0票数 2

我有一个NSString,它被赋予一个字符串值。如何获取此NSString并在文件名及其扩展名之间插入@"-thumbnail"

换句话说,我如何从:

代码语言:javascript
复制
NSString *fileName = @"myFile.png";

至:

代码语言:javascript
复制
NSString *thumbnailName = [NSString someMagicFunction...]
NSLog(@"%@", thumbnailName);  // Should Output "myFile-thumbnail.png"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-29 11:21:56

为路径组件添加的NSString可能会派上用场,特别是:pathExtensionstringByDeletingPathExtension

编辑:另请参阅:stringByAppendingPathExtension: (由Dave DeLong指出)

代码语言:javascript
复制
NSString * ext = [fileName pathExtension];
NSString * baseName = [fileName stringByDeletingPathExtension];
NSString * thumbBase = [baseName stringByAppendingString:@"-thumbnail"];
NSString * thumbnailName = [thumbBase stringByAppendingPathExtension:ext];

如果您确实希望magicFunction存在,您可以像这样向NSString添加一个category方法:

代码语言:javascript
复制
@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

使用方法如下:

代码语言:javascript
复制
NSString * thumbnailName = [fileName stringByAddingFileSuffix:@"-thumbnail"];
票数 11
EN

Stack Overflow用户

发布于 2010-12-29 12:41:38

如果您确定您的文件名,您也可以简单地执行以下操作:

代码语言:javascript
复制
[NSString stringByReplacingOccurrencesOfString:@"." withString:@"-thumbnail."]

但是路径处理的东西更干净(不管有多少“。您在名字中有),并且对于更棘手的情况很好地了解。

票数 1
EN

Stack Overflow用户

发布于 2010-12-29 19:17:20

为此,我们有一个开源类别:-[NSString ks_stringWithPathSuffix:]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4551214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档