stringByTrimmingCharactersInSet:消息无效

时间:2010-07-09 15:54:11

标签: objective-c iphone nsstring

令人生气,但我不能让这个代码工作,首先我虽然它是一个可变/不可知的问题,但它不会,我相信。 我究竟做错了什么? labeledPemString do有内容,指定的characterSet正在打印'范围开始{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 :(得分:0)

stringByTrimmingCharactersInSet:从接收器中删除集合中出现的字符。即NSCharacterSet包含ac,以及

[@"abc" stringByTrimmingCharactersInSet:characterSet];

得到@"b"characterSetWithRange:中的范围是要放入字符集中的unicode的范围。

我想这不是你想要的。如果您只想从给定字符串中删除子字符串,只需使用substringFromIndex:, substringToIndex and substringWithRange: