NSString проблемы - PullRequest
       3

NSString проблемы

2 голосов
/ 29 декабря 2010

У меня есть строка NSString, которой присваивается строковое значение.Как мне взять NSString и вставить @"-thumbnail" между именем файла и его расширением?

Другими словами, как мне перейти от:

NSString *fileName = @"myFile.png";

к:

NSString *thumbnailName = [NSString someMagicFunction...]
NSLog(@"%@", thumbnailName);  // Should Output "myFile-thumbnail.png"

Ответы [ 3 ]

11 голосов
/ 29 декабря 2010

Могут пригодиться дополнения NSString для компонентов пути, а именно: pathExtension и stringByDeletingPathExtension

Редактировать: см. Также: stringByAppendingPathExtension: (как указано Дейв Делонг )

NSString * ext = [fileName pathExtension];
NSString * baseName = [fileName stringByDeletingPathExtension];
NSString * thumbBase = [baseName stringByAppendingString:@"-thumbnail"];
NSString * thumbnailName = [thumbBase stringByAppendingPathExtension:ext];

Если вы действительно хотите, чтобы 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

Использовать следующим образом:

NSString * thumbnailName = [fileName stringByAddingFileSuffix:@"-thumbnail"];
1 голос
/ 29 декабря 2010

Если вы уверены в своих именах файлов, вы также можете просто сделать:

[NSString stringByReplacingOccurrencesOfString:@"." withString:@"-thumbnail."]

Но материал для обработки пути чище (не важно, сколько "." У вас в имени)полезно знать о более сложных случаях.

0 голосов
/ 29 декабря 2010

У нас есть категория с открытым исходным кодом только для этого: - [NSString ks_stringWithPathSuffix:]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...