stringByTrimmingCharactersInSet: сообщение не работает - PullRequest
0 голосов
/ 09 июля 2010

Это раздражает, но я не могу заставить этот код работать, сначала я подумал, что это была изменчивая / неизменная проблема, но, думаю, это не так.Что я делаю неправильно?У labeleledPemString do есть содержимое, и указанный набор символов печатает «диапазоны начинаются {0, 26}».Но unlabeledBeginPemString имеет то же самое, что и исходная строка.

//Get the .pem file contents
 NSString *path = [[NSBundle mainBundle] pathForResource:@"publickey" ofType:@"pem"];
 NSMutableString *labeledPemString = [[NSMutableString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
 NSLog(@"labeled  %@", labeledPemString);
 //Take off -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers
 //First get begin range
 NSRange beginHeaderRange = [labeledPemString rangeOfString:@"-----BEGIN PUBLIC KEY-----"];
 NSLog(@"ranges begin %@ ", NSStringFromRange(beginHeaderRange));

 //Create a characterset with begin range
 NSCharacterSet *beginHeaderChSet = [NSCharacterSet characterSetWithRange:beginHeaderRange];
 //Trim text
 NSMutableString *unlabeledBeginPemString = [[labeledPemString stringByTrimmingCharactersInSet:beginHeaderChSet] mutableCopy];
 NSLog(@"unlabeled 1 %@", unlabeledBeginPemString);

Спасибо за помощь.

1 Ответ

0 голосов
/ 09 июля 2010

stringByTrimmingCharactersInSet: удаляет вхождения символов в наборе из получателя. то есть, если NSCharacterSet содержит a и c, и если вы делаете

[@"abc" stringByTrimmingCharactersInSet:characterSet];

вы получите @"b", а диапазон в characterSetWithRange: - это диапазон Юникода, который будет вставлен в набор символов.

Полагаю, это не то, что вы хотите. Если вы просто хотите удалить подстроки из заданной строки, просто используйте substringFromIndex:, substringToIndex и substringWithRange:.

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