Есть ли возможность использовать более одного объекта NSCharacterSet для одной и той же строки NSString? - PullRequest
0 голосов
/ 14 сентября 2011

Рассмотрим этот код:

NSString *aString = @"\tThis is a sample string";
NSString *trimmedString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"The trimmed string: %@",trimmedString);
trimmedString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"string"]];
NSLog(@"The trimmed string: %@",trimmedString);

Здесь, если я использую characterSetWithCharactersInString: для того же NSString объекта trimmedString, мой предыдущий whitespace эффект обрезки удаляется ..

Мой вопрос:

Есть ли возможность использовать более одного NSCharacterSet объекта для одного NSString ???или предложите мне другой способ сделать это, пожалуйста, но объект NSString должен быть одним и тем же ..

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Проблема не из-за наборов символов.Это потому, что вы используете aString во время обрезки строки во второй раз.Вы должны использовать trimmedString вместо этого.Ваш код должен выглядеть так:

trimmedString = [trimmedString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"string"]];
1 голос
/ 14 сентября 2011

Что по этому поводу:

NSString *aString = @"\tThis is a sample string";
NSMutableCharacterSet *customSet = [[NSMutableCharacterSet alloc] init];
[customSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
[customSet addCharactersInString:@"string"];
NSString *trimmedString = [aString stringByTrimmingCharactersInSet:customSet];
[customSet release];
...