2010-09-16 3 views
0

Je reçois des plantages aléatoires de malloc dans stringByReplacingOccurrencesOfString. J'ai remarqué qu'il se bloque sur des chaînes plus longues, mais je n'arrive pas à trouver pourquoi. Quel pourrait être le problème?Des accidents de malloc aléatoires dans stringByReplacingOccurrencesOfString

L'erreur:

CashTrader(53448,0xb0103000) malloc: *** error for object 0x5c5eca0: incorrect checksum for freed object - object was probably modified after being freed. 

Entrée encryptedparams

raStwjnw9uiOEHzF00UazOUp879zUuLwJ6J300BH2DMH29Pww/4mOR3oHXv4F/CL 

Exemple de code:

-(NSURL *)createReqUrl:(NSString *)hostString secure:(BOOL)usessl urlRoot:(NSString*)urlRoot encryptedParam:(NSString *)encryptedparams{ 
    NSString *encryptString; 
    encryptString = nil; 



    encryptString = [encryptedparams stringByReplacingOccurrencesOfString:@"+" withString:@"%%2b"]; 
    encryptString = [encryptString stringByReplacingOccurrencesOfString:@"/" withString:@"%%2f"]; 
    encryptString = [encryptString stringByReplacingOccurrencesOfString:@"=" withString:@"%%3d"]; 
    encryptString = [encryptString stringByReplacingOccurrencesOfString:@"@" withString:@"%%40"]; 

    NSString *answer = [[NSString alloc] initWithString:urlRoot]; 
    answer = [[answer stringByAppendingString:encryptString] stringByReplacingOccurrencesOfString:@"%%" withString:@"%"]; 

    NSString *scheme = nil; 
    if (usessl) 
     scheme = @"https://"; 
    else 
     scheme = @"http://"; 

    return [[NSURL alloc] initWithString:[[scheme stringByAppendingString:hostString] stringByAppendingString:answer]];; 
} 

Répondre

1

je crois que votre encryptString devrait être NSMutableString.

Questions connexes