2010-06-26 10 views

답변

0

대부분이 +alloc/initWith...을 사용하여 urlString을 만들었습니다. 그렇다면 urlString 참고 자료를 소유하고 있으며 어느 시점에서이를 공개해야합니다. 그러나 질문에 붙여 넣은 줄로 가면 stringByReplacingOccurrencesOfString:withString:이 새 문자열 객체를 반환하므로 (즉, 문자열을 수정하지 않기 때문에) urlString 참조를 새 문자열 참조로 덮어 씁니다.

제 대신에 NSMutableString을 사용하는 것이 좋습니다. 즉, 내부 문자열 조작을 허용합니다.

1

고정 할당 대신 문자열 할당 포인터를 사용해야합니다. 변경 :

NSString urlString; 

에 :

NSString *urlString; 

또한 일부 값으로 urlString을 시작하는 다른 코드가있을 것 같습니다 당신은 교체 작업을하고있는 할 수있다.

+0

LOL 내가 그걸 보지 못했다니 믿을 수가 없어. :) –

+0

컴파일러는 어쨌든 컴파일을 허용하지 않습니다. 누수의 원인이 될 수는 없습니다 (적어도 빌드 설정에 크게 영향을받지 않고). – bbum

0

가 하나의 내 코드에서의이

NSString * str_aLine; 
    str_aLine = @"sometext \n and \t  and on"; 
    // replace tabs to space 
    str_aLine = [str_aLine stringByReplacingOccurrencesOfString:@"\t" withString:@" "]; 
    // replace \n to space 
    str_aLine = [str_aLine stringByReplacingOccurrencesOfString:@"\n" withString:@" "]; 
    // replace \r to space 
    str_aLine = [str_aLine stringByReplacingOccurrencesOfString:@"\r" withString:@" "]; 
    // reduce spaces to one space 
    str_aLine = [str_aLine stringByReplacingOccurrencesOfString:@" +" withString:@" " options:NSRegularExpressionSearch range:NSMakeRange(0, str_aLine.length)]; 
    // trim begin and end from white spaces 
    str_aLine = [str_aLine stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];