2010-07-09 4 views
0

Il est exaspérant, mais je ne peux pas obtenir ce code de travail, d'abord je pensais que c'était un problème mutable/inmutable mais il ne le fait pas, je crois. Qu'est-ce que je fais de mal? markedPemString do a un contenu et le characterSet spécifié est en train d'imprimer 'ranges begin {0, 26}'. Mais unlabeledBeginPemString a la même valeur que la chaîne d'origine.stringByTrimmingCharactersInSet: message ne fonctionne pas

//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); 

Merci pour votre aide.

Répondre

0

stringByTrimmingCharactersInSet: supprime les occurrences de caractères de l'ensemble du récepteur. à savoir si le NSCharacterSet contient a et c, et si vous faites

[@"abc" stringByTrimmingCharactersInSet:characterSet]; 

vous obtenez @"b" et la gamme de characterSetWithRange: est la portée du unicode à mettre dans le jeu de caractères. Je suppose que ce n'est pas ce que vous voulez. Si vous souhaitez simplement supprimer des sous-chaînes d'une chaîne donnée, utilisez simplement substringFromIndex:, substringToIndex and substringWithRange:.

+0

Merci beaucoup Yuji !!! J'ai complètement oublié ces méthodes ... – chuckSaldana