J'ai du code source pour obtenir le nom de fichier d'une url.
par exemple :
J'espère obtenir un .pdf
parce que la façon de joindre 2 NSStrings que je peux obtenir est 'appendString' qui ne permet que d'ajouter une chaîne à droite, donc j'ai prévu de vérifier chaque caractère un par un à partir du côté droit de la chaîne 'http://www.google.com/a.pdf', quand il atteint le caractère '/', arrêter la vérification, retourner la chaîne fdp.a , après quoi je change fdp.a en a.pdf
les codes sources sont ci-dessous
-(NSMutableString *) getSubStringAfterH : originalString:(NSString *)s0
{
NSInteger i,l;
l=[s0 length];
NSMutableString *h=[[NSMutableString alloc] init];
NSMutableString *ttt=[[NSMutableString alloc] init ];
for(i=l-1;i>=0;i--) //check each char one by one from the right side of string 'http://www.google.com/a.pdf', when it reach at the char '/', stop
{
ttt=[s0 substringWithRange:NSMakeRange(i, 1)];
if([ttt isEqualToString:@"/"])
{
break;
}
else
{
[h appendString:ttt];
}
}
[ttt release];
NSMutableString *h1=[[[NSMutableString alloc] initWithFormat:@""] autorelease];
for (i=[h length]-1;i>=0;i--)
{
NSMutableString *t1=[[NSMutableString alloc] init ];
t1=[h substringWithRange:NSMakeRange(i, 1)];
[h1 appendString:t1];
[t1 release];
}
[h release];
return h1;
}
h1 peut renvoyer la chaîne coorecte a.pdf, mais s'il retourne aux codes où il a été appelé, après un certain temps le système signale double libre * définir un point d'arrêt dans malloc_error_break pour déboguer'.
J'ai vérifié longtemps et j'ai trouvé que si je supprimais le code
ttt=[s0 substringWithRange:NSMakeRange(i, 1)] ;
tout sera Ok (bien sûr getSubStringAfterH ne peut pas retourner le résultat corrent que j'attendais.), aucune erreur signalée.
J'essaie de corriger le bug quelques heures, mais toujours pas d'indice.
Tout commentaire est le bienvenu
Merci interdev